В emacs вы можете использовать программу emacsclient
чтобы открыть файл в уже существующем фрейме emacs. Есть ли способ сделать это с Vim? Другими словами, я хочу, чтобы в командной строке я мог что-то напечатать, чтобы открыть файл в уже открывшемся окне vim, а не создавать новый.
2 ответа
Я на самом деле понял это самостоятельно. Это поддерживается в vim изначально, если вы используете опцию --remote. Пример:
gvim --remote foo.txt
Вы также можете указать имя сервера:
gvim --remote foo.txt --servername foo
Я добавил следующую функцию в мой .zshrc (но он должен работать и в bash), чтобы сделать это немного проще:
function vs() {
gvim --remote-silent $@
}
Таким образом, все, что вам нужно набрать, это vs <filename>
.
Есть ли эквивалент для emacsclient для vim?
На самом деле, нет.
Я хочу иметь что-то, что я могу напечатать в командной строке, чтобы открыть файл в окне VIM, которое у меня уже есть, вместо создания нового
Это можно сделать с помощью gvim --remote
.
Но клиент emacs гораздо полезнее, чем просто gvim --remote
. С клиентом emacs вы можете открыть двойное окно emacs gtk. Затем вы можете открыть emacs с некоторыми файлами на вашем компьютере, запустить ssh с пересылкой X11 и запустить emacsclient, чтобы открыть окно emacs на удаленной машине. Это как экран для Emacs. К сожалению, gvim --remote
работает только для оценки выражений, отправки сочетаний клавиш и открытия файлов, что, хотя и полезно и соответствует вашему сценарию использования, не совпадает с emacsclient.