Considere cualquier lenguaje de programación interpretado.
Puedo ejecutar el script abierto actualmente usando ! interpreter %
y usar la tecla de retorno para regresar a vim una vez finalizada la ejecución.
¿Es posible de alguna manera no reemplazar la ventana actual con la salida del comando de shell ejecutado, sino abrir la salida en un nuevo panel dividido? Me gustaría seguir viendo mi código fuente durante la ejecución de mi script.
Lo intenté :split ! interpreter %
, pero no funcionó.
¿Hay alguna manera? Estoy usando vim 7.3.
Respuesta1
Con :!
, el comando externo se ejecuta en un shell y la salida fugaz no se captura dentro de Vim; simplemente ve lo que se imprime en la terminal, luego el control regresa a Vim una vez que finaliza el comando externo.
Para conservar la salida, debes leerla en un Vim.buffer. Para eso, está el :read!
comando. Para abrir un nuevorascarbuffer, combine esto con :new
:
:new | 0read ! <command>
Si desea pasar el nombre de archivo del búfer actual ( %
) al comando externo, debe usar :execute
, para que ya esté evaluado en el búfer actual:
:execute 'new | 0read ! interpreter' expand('%')
O bien, utiliza el hecho de que con un nuevo buffer, el anterior se convierte en elalternouno, y utilizar #
en lugar de %
:
:new | 0read ! interpreter #
Deshágase del buffer temporal con :bdelete!
.
Si desea ver la salida de forma asíncrona mientras se ejecuta, necesita un multiplexor externo o un complemento, como se menciona en la respuesta de @chaos.
Respuesta2
Hasta donde yo sé, no puedes hacer eso en vim
. Pero use un multiplexor de terminal como screen
para eso. Antes de abrir un vim, inicie el multiplexor:
screen
Luego presione ctrl- a Spara una pantalla horizontal y ctrl- a |para una pantalla derramada vertical.
Ahora abra un archivo en vim
una de las pantallas divididas. Y salta a la otra pantalla usando ctrl- a tab. Tenga en cuenta que, en la segunda pantalla, primero debe abrir una nueva pantalla ( ctrl- a c) antes de poder usarla.
En la pantalla con vim puedes editar el archivo y en la otra pantalla puedes ejecutarlo y ver los mensajes y el código permanentemente.
Aquí unreferencia rápidapara screen
.