Abrir la salida de un comando de shell en un panel dividido

Abrir la salida de un comando de shell en un panel dividido

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 screenpara 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 vimuna 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.

información relacionada