6

Я хочу, чтобы gvim был «только для экземпляра», т. Е. Знал о параметре или о чем-то, что открывает файл в виде вкладки в моем уже открытом экземпляре gvim вместо открытия нового.

Пример для пояснения: предположим, у меня открыто окно gvim с одним файлом, module1.c. Предположим, я нахожусь на терминале, какую команду мне нужно ввести, чтобы открыть «module2.c» в том же окне, в котором теперь находится module1.c?

PS: я знаю, что есть опция -p, которая позволяет мне открывать несколько файлов на нескольких вкладках. Но я ищу способ открыть новую вкладку из OUTSIDE gvim ПОСЛЕ того, как она уже запущена.

Как это сделать? Это вообще возможно?

2 ответа2

7

Я хочу, чтобы gvim был «только для экземпляра», т. Е. Знал о параметре или о чем-то, что открывает файл в виде вкладки в моем уже открытом экземпляре gvim вместо открытия нового.

Позвольте мне кое-что прояснить здесь ... в vim вкладки - это не то, что люди ожидают от них. В большинстве программ они являются "экземпляром" файла (одна вкладка / один файл), но в vim они являются просто "точкой обзора", в которую вы можете иметь несколько окон vim, каждое из которых содержит все, что вы положили в него.

Vim при открытии файла открывает его в буфере. Один буфер для каждого файла. Вы можете просмотреть список открытых буферов с

:ls

Пример для пояснения: предположим, у меня открыто окно gvim с одним файлом, module1.c. Предположим, я нахожусь на терминале, какую команду мне нужно ввести, чтобы открыть «module2.c» в том же окне, в котором теперь находится module1.c?

Опять же, у нас есть проблема терминологии. Ради обсуждения, я предполагаю, что вы имеете в виду "окно", как в окне Windows, а не внутреннее окно vim. Если вы хотите открыть файл в уже открытом экземпляре gvim, попробуйте

gvim first_file.dat
gvim --remote-tab second_file.dat

Это можно легко сократить, поместив его в файл .bat (если вы работаете в Windows), и тогда вам не нужно вводить часть «--...» снова и снова.

PS: я знаю, что есть опция -p, которая позволяет мне открывать несколько файлов на нескольких вкладках. Но я ищу способ открыть новую вкладку из OUTSIDE gvim ПОСЛЕ того, как она уже запущена.

Интересно, я не знал об этом :)

Как это сделать? Это вообще возможно?

Скажите, если это то, что вы искали.

3

Vim может сделать это при запуске в режиме clientserver, если он был скомпилирован с опцией +clientserver .

Запустите первый экземпляр vim с параметром --servername :

gvim --servername FILES --remote-silent file.txt

Теперь вы можете открыть дополнительные файлы в этом экземпляре, указав --servername или просто указав параметр --remote .

gvim --remote file2.txt

gvim --servername FOOBAR --remote file3.txt

Взято из руководства vim с документацией о режиме клиент-сервер. Afaik, новые файлы открываются как буферы на активной вкладке. Я не уверен, можно ли настроить vim для открытия входящих файлов на новых вкладках.

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