Una gran diferencia de neovim y Vim es que neovim incluye un emulador de terminal que funciona de forma asíncrona.
Sin embargo, no veo cómo puedo sacar provecho de esta función. ¿Para qué puedo usarlo? ¿Puede dar algunos casos de uso para la función de terminal de neovim para que entienda cómo puedo usarlo en su mejor medida?
En condiciones normales Vim utilizo normalmente :read !{command}
, :write !{command}
, Ctrl+Z
y fg
, así como TMux ventanas divididas.
<C-z>
es que el sistema operativo suspende el proceso de Vim: no está haciendo nada (incluida la respuesta a los comandos del servidor).:shell
en suexit
lugar o también se suspende vim aquí?<C-z>
, es un problema con tu script.Respuestas:
Ejecutar un terminal dentro de Vim le permite usar los comandos de Vim en la entrada y salida de los programas que ejecuta en ese terminal. Obtiene búsqueda, copia y pegado, macros, coloración de sintaxis, etc. Usando
:read !{command}
y:write !{command}
le da eso para comandos de una sola vez, pero la entrada / salida asincrónica se vuelve útil cuando desea enviar entrada a un programa externo pieza por pieza.El caso de uso típico es un bucle read-eval-print (REPL), que es proporcionado por muchos lenguajes de programación de alto nivel. Escribe una estrofa en su código fuente y luego la envía al REPL para recibir comentarios inmediatos. Como REPL sigue ejecutándose de un envío al siguiente, el fragmento de código enviado se ejecuta en contexto.
fuente
Creo que la opción de crear asignaciones solo de terminal es valiosa y amplía las opciones que tiene en otros emuladores de terminal, por ejemplo, la asignación t para ejecutar pruebas unitarias con una configuración específica, que solo puede lograr a través de alias complejos o funciones bash.
fuente
El caso de uso más obvio que se me ocurre es la programación. ¿Alguna vez ha querido ejecutar pruebas dentro de VIM, compilar o usar alguna herramienta de consola? Sé que la gente usa Tmux, pero sé que puedes hacerlo dentro de NeoVIM, debo decir. ¡Esto es bastante asombroso!
Si usa buffers, puede agregar, eliminar, ocultar y mostrar terminales como desee. Ese es el beneficio;)
fuente
¡El mejor caso de uso que se me ocurre es el ADM-3a original en una línea de 110 bps! A veces, realmente no hay sustituto para mirar las cosas una al lado de la otra, y
:!r
no es suficiente.fuente