¿Puedo abrir un archivo en una instancia de Vim existente desde un comando externo?


20

Algunas aplicaciones tienen la noción de una "sesión" , donde puede ejecutar un comando para cargar un archivo en una instancia existente de una aplicación.

Por ejemplo, cuando escribo:

$ firefox http://vi.stackexchange.com

Firefox reutiliza un proceso existente de Firefox, en lugar de crear uno nuevo.

¿Es esto posible con Vim?

Respuestas:


22

Necesita compilar vim +clientserver, y luego puede usar el comando vim --servername SERVERpara iniciar una instancia de vim y vim --servername SERVER --remote FILEabrir el archivo en la instancia de vim nombrada.


solo macOS

MacVim ejecuta un servidor de forma predeterminada: puede usarlo mvim --remote-tab-silentpara abrir un archivo en una nueva pestaña en su instancia de MacVim existente, o mvim --remote-silentpara abrir el archivo en un nuevo búfer en la misma pestaña.


4

Si bien la respuesta de @ craigp es correcta, me pareció más conveniente agregar simplemente --remote-silentsin preocuparme por los nombres de los servidores
(esto supone que no desea abordar las instancias de vim con nombre) .

Esto iniciará el servidor o usará uno si aún no se ha iniciado.

Se puede llamar así:

gvim --remote-silent '+cal cursor(line,col)' some_file

p.ej:

gvim --remote-silent '+cal cursor(102,4)' src/code.c

Terminé necesitando usar un método diferente para mover el cursor debido a esta inicialización remota.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.