2009-08-06 51 views
5

leyendo algunos consejos de vim, me encontré con :r!{command} y :.!{command}, que toman la salida del shell <command> y lo colocan en el búfer actual. Me imagino que 'r' significa 'leer', pero ¿cómo voy a 'traducir' el punto en el comando anterior?¿cuál es la diferencia entre:.! y: r !?

Y: ¿tienen exactamente la misma función?

¡Muchas gracias por sus comentarios!

Guba

+0

Tal vez esto debería ir al superusuario, ya que es una pregunta del usuario no la programación? [@Guba, no te preocupes por moverlo, sucederá automáticamente si es necesario. La contraseña beta está en http://blog.stackoverflow.com/2009/07/super-user-semi-private-beta-begins/, no olvide vincular su cuenta, consulte http: //blog.stackoverflow. com/2009/07/cross-site-account-associations /] – bdonlan

Respuesta

16

El punto es una región, en referencia a la línea actual. El ! toma esta región y la canaliza a través del comando.

Así, por ejemplo, si lo hace:

:.!rev 

podrás invertir el orden de los caracteres en la línea actual.

Por supuesto, si utiliza un comando que ignora su entrada, simplemente reemplazará la línea actual con el resultado que sea.

:r!, por otro lado, inserta la salida después de la línea actual, sin eliminar el texto de la línea actual.

+0

Brilliant! ¡Saludos por la respuesta rápida y precisa! – Guba

+0

: .r! no funciona para mi No toma línea y canaliza esto para mandar. – Arpegius

+1

lionbest, tenga en cuenta que no se hizo mención de: .r! . Es o bien:.! {Command} o: r! {Command}. – Guba

Cuestiones relacionadas