Сделать gvim «только для экземпляра»

2762
Rafael Almeida

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

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

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

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

6

2 ответа на вопрос

7
Rook

Я хочу, чтобы 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 ПОСЛЕ того, как она уже запущена.

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

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

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

Да, это именно то, что я искал! = D Кроме того, вы можете сократить команду с помощью сценария оболочки, помещенного в папку / usr / bin (я назвал мой 'gvimt') Rafael Almeida 14 лет назад 0
отлично, спасибо Я сделал псевдоним = vim = '/ c / Program \ Files \ \ (x86 \) / Vim / vim73 / gvim.exe --remote-tab' в cygwin Jay R. Wren 12 лет назад 0
Вы можете сделать «Функция g » в Powershell Zotov 12 лет назад 0
3
nagul

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 для открытия входящих файлов на новых вкладках.