Чи можу я відкрити файл у існуючому екземплярі Vim із зовнішньої команди?


20

Деякі програми мають поняття "сеанс" , де можна виконати команду для завантаження файлу в існуючий екземпляр програми.

Наприклад, коли я набираю:

$ firefox http://vi.stackexchange.com

Firefox повторно використовує існуючий процес Firefox, а не створює новий.

Це можливо з Vim?

Відповіді:


22

Вам потрібен компільований vim +clientserver, а потім ви можете скористатися командою, vim --servername SERVERщоб запустити екземпляр vim та vim --servername SERVER --remote FILEвідкрити файл у вказаному екземплярі vim.


лише для macOS

MacVim запускає сервер за замовчуванням - ви можете використовувати mvim --remote-tab-silentфайл для відкриття нової вкладки у вашому наявному екземплярі MacVim або mvim --remote-silentвідкрити файл у новому буфері на тій же вкладці.


4

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

Це запустить сервер або використовувати його, якщо його ще не запущено.

Це можна назвати так:

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

наприклад:

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

Через цю віддалену ініціалізацію мені довелося використовувати інший метод переміщення курсору.

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