¿Cómo ejecutar comandos de Unix desde Vim?

77

¿Cómo puedo ejecutar comandos de Unix mientras estoy dentro de vim?

funk-shun
fuente

Respuestas:

103

Vaya al modo de comando Esc, luego ejecute :!unix_command. Todo lo que se ejecute desde el :indicador que comienza con una explosión !se ejecutará como un comando de shell de Unix. Se le mostrará el resultado y se le permitirá presionar una tecla para volver a su trabajo en vim.

Si tiene texto seleccionado en modo visual y desea enviarlo a un comando como STDIN, presione !!e ingrese su comando. Los resultados del comando reemplazarán el texto que ha seleccionado.

Caleb
fuente
14
Además, !! sin ningún texto seleccionado, le permitirá ejecutar un comando y luego insertar el resultado en la posición actual del cursor, sin necesidad de enviar cosas a STDIN y reemplazarlo si no lo necesita / no desea.
Kromey
44
Además, si simplemente desea poner la salida de un comando en su documento, simplemente hágalo :r!unix_command. Esto es útil para comandos comodate
Yab
2
También puede ejecutar varias líneas de su búfer vi por el shell (o cualquier intérprete) y reemplazarlas por el resultado de la ejecución. por ejemplo: :10,20!sho, forme líneas marcadas,'a,'b!sh
jlliagre
1
Algo más que creo que vale la pena señalar es que esto depende del sistema operativo que esté utilizando. Si está utilizando Windows, ejecutará un comando de shell de Windows. Mucha gente que lee esto ya lo sabrá, pero para las personas que vienen de Google, pensé que valdría la pena mencionarlo.
Andrew
25

Desde un espejo de ayuda VIM :

:shell        :sh[ell]        start a shell
:!            :!{command}     execute {command} with a shell
Jay Elston
fuente