Est-il possible d'utiliser la fonctionnalité clientserver de vim pour garder les paramètres synchronisés?

11

J'ai généralement plusieurs instances de vim exécutées sur la même machine. Lorsque je modifie mon vimrc, je peux simplement :source ~/.vimrc(avec un mappage facile ou un autocmd). Mais pour que toutes les instances en cours d'exécution reflètent le changement, je dois les exécuter séparément dans chacune d'elles. Puis-je utiliser la clientserverfonction pour dire à toutes les instances de recharger mon vimrc?

Je serais également intéressé par des solutions qui n'utilisent pas clientserver.

xthrd
la source

Réponses:

7

Vous pouvez dire à un serveur Vim de recharger le fichier vimrc comme ceci:

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

Et vous pouvez obtenir une liste de tous les serveurs avec:

$ vim --serverlist
MARTIN
CARPETSMOKER

Qui peut être combiné avec une forboucle:

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

Comme c'est beaucoup de saisie, vous pouvez le mettre dans un script shell dans ~/bin/reload-vimrc; vous pouvez bien sûr également l'appeler depuis Vim:

:!reload-vimrc

Si vous utilisez Linux et que vous voulez devenir vraiment fou, vous pouvez utiliser à inotifywatchpartir d' inotify-tools pour surveiller vos fichiers vimrc pour les changements, et l'exécuter automatiquement à chaque changement (non testé, exemple adapté de la page de manuel)

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

Je ne recommanderais pas cela, cependant ... Si vous enregistrez accidentellement un fichier avec une erreur de syntaxe, vous pouvez bork toute votre session vim ...

Martin Tournoij
la source
-1

Je ne sais pas pour clientserver, mais puisque vous avez dit que vous étiez intéressé par d'autres solutions, je recommanderais de regarder ce document sur les fichiers dot de Github.

https://dotfiles.github.io

Vous n'avez évidemment pas besoin d'utiliser Github, mais les concepts sont solides et semblent être largement utilisés.

tgrosinger
la source
Bien que je pense que le fait d'avoir vos fichiers dot sous contrôle de version est génial, je posais des questions spécifiques sur les instances de vim fonctionnant sur la même machine (j'ai mis à jour la question).
2015
1
-1; Cette réponse n'a pas vraiment de rapport avec la question posée. La question concerne le rechargement de vimrc , pas la gestion de vimrc .
Martin Tournoij
La question initiale avant ma réponse ne précisait pas qu'il parlait d'instances sur la même machine. À l'époque, ma réponse répondait à la question.
tgrosinger