4

В emacs вы можете использовать программу emacsclient чтобы открыть файл в уже существующем фрейме emacs. Есть ли способ сделать это с Vim? Другими словами, я хочу, чтобы в командной строке я мог что-то напечатать, чтобы открыть файл в уже открывшемся окне vim, а не создавать новый.

2 ответа2

7

Я на самом деле понял это самостоятельно. Это поддерживается в vim изначально, если вы используете опцию --remote. Пример:

gvim --remote foo.txt

Вы также можете указать имя сервера:

gvim --remote foo.txt --servername foo

Я добавил следующую функцию в мой .zshrc (но он должен работать и в bash), чтобы сделать это немного проще:

function vs() {
    gvim --remote-silent $@
}

Таким образом, все, что вам нужно набрать, это vs <filename> .

7

Есть ли эквивалент для emacsclient для vim?

На самом деле, нет.

Я хочу иметь что-то, что я могу напечатать в командной строке, чтобы открыть файл в окне VIM, которое у меня уже есть, вместо создания нового

Это можно сделать с помощью gvim --remote .

Но клиент emacs гораздо полезнее, чем просто gvim --remote . С клиентом emacs вы можете открыть двойное окно emacs gtk. Затем вы можете открыть emacs с некоторыми файлами на вашем компьютере, запустить ssh с пересылкой X11 и запустить emacsclient, чтобы открыть окно emacs на удаленной машине. Это как экран для Emacs. К сожалению, gvim --remote работает только для оценки выражений, отправки сочетаний клавиш и открытия файлов, что, хотя и полезно и соответствует вашему сценарию использования, не совпадает с emacsclient.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .