Чи можна використовувати функцію клієнтського сервера vim для синхронізації налаштувань?


11

У мене зазвичай є кілька випадків запуску vim на одній машині. Коли я вношу зміни до свого vimrc, я можу просто :source ~/.vimrc(з легким картографуванням або autocmd). Але для того, щоб усі запущені екземпляри відображали зміну, я повинен виконати це у кожному з них окремо. Чи можу я використовувати цю clientserverфункцію, щоб повідомити всім випадкам, щоб перезавантажити свій vimrc?

Мені також були б цікаві рішення, які не використовуються clientserver.

Відповіді:


7

Ви можете сказати серверу Vim, щоб перезавантажити файл vimrc таким чином:

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

І ви можете отримати список усіх серверів за допомогою:

$ vim --serverlist
MARTIN
CARPETSMOKER

Що можна комбінувати з forпетлею:

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

Оскільки це дуже багато вводити текст, ви можете помістити його в сценарій оболонки в ~/bin/reload-vimrc; Ви можете, звичайно, також зателефонувати йому в межах Vim:

:!reload-vimrc

Якщо ви працюєте в Linux, і хочете отримати дійсно божевільний, ви могли б використовувати inotifywatchвід Inotify-інструментів для моніторингу файлу vimrc (и) для змін, і виконати це автоматично при кожній зміні (неперевірений, приклад адаптований з сторінки керівництва)

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

Я б не рекомендував цього, однак ... Якщо ви випадково збережете файл із синтаксичною помилкою, ви можете захистити весь ваш сеанс vim ...


-1

Я не знаю про клієнтський сервер, але оскільки ви сказали, що вас цікавлять інші рішення, я б рекомендував ознайомитись із цією програмою про dotfiles від Github.

https://dotfiles.github.io

Ви, очевидно, не повинні використовувати Github, але поняття є здоровими і, здається, широко використовуються.


Хоча я думаю, що ваші dotfiles під контролем версій є дивним, я спеціально запитував про випадки запуску vim на тій же машині (я оновив питання).
xthrd

1
-1; Ця відповідь насправді не має жодного стосунку до поставленого питання. Питання стосується перезавантаження vimrc , а не керування vimrc .
Мартін Турноїй

Початкове запитання до моєї відповіді не дало зрозуміти, що він говорить про випадки на одній машині. У той час моя відповідь вирішила це питання.
tgrosinger
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.