vimrc – ¿Es posible utilizar la funcionalidad cliente-servidor de vim para mantener la configuración sincronizada?

Pregunta:

Normalmente tengo varias instancias de vim ejecutándose en la misma máquina. Cuando hago un cambio en mi vimrc, puedo simplemente :source ~/.vimrc (con un mapeo fácil o un autocmd). Pero para que todas las instancias en ejecución reflejen el cambio, tengo que ejecutarlo en cada una de ellas por separado. ¿Puedo usar la función clientserver para decirle a todas las instancias que recarguen mi vimrc?

También me interesarían las soluciones que no utilicen clientserver .

Respuesta:

Puede decirle a un servidor Vim que vuelva a cargar el archivo vimrc así:

$ vim --servername MARTIN --remote-send '<Esc>:source $MYVIMRC<CR>' 

Y puede obtener una lista de todos los servidores con:

$ vim --serverlist
MARTIN
CARPETSMOKER

Que se puede combinar con un bucle for :

$ for s in $(vim --serverlist); do vim --servername "$s" --remote-send '<Esc>:source $MYVIMRC<CR>'; done

Dado que es mucho escribir, puede ponerlo en un script de shell en ~/bin/reload-vimrc ; por supuesto, también puede llamarlo desde Vim:

:!reload-vimrc

Si está ejecutando Linux y quiere volverse realmente loco, puede usar inotifywatch de inotify-tools para monitorear sus archivos vimrc en busca de cambios, y ejecutar esto automáticamente en cada cambio (no probado, ejemplo adaptado de la página de manual)

$ inotifywatch -v -e modify -t 60 -r ~/.vimrc ~/.vim

Sin embargo, no recomendaría esto … Si guarda accidentalmente un archivo con un error de sintaxis, podría cerrar toda su sesión de vim …

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım