Используйте функцию клиент / сервер в vim / gvim.
gvim --remote-tab myfile
Это работает для терминальной и графической версий vim, если они скомпилированы ( vim --version
) с +clientserver
функцией. (При желании добавьте, чтобы задать имя экземпляра, по умолчанию .)--servername foo
GVIM
К сожалению, вы не можете сделать это из .vimrc
. Вам придется либо:
напишите скрипт-обертку, например
~/bin/gvim
:#!/bin/sh exec /usr/bin/gvim --remote-tab-silent "$@"
(
--remote-tab-silent
приведет к тихому запуску нового сервера при необходимости)измените файл gvim.desktop, включив в него команды сервера:
$ mkdir -p ~/.local/share/applications $ cp {/usr,~/.local}/share/applications/gvim.desktop $ vim -e ~/.local/share/applications/gvim.desktop :/^Exec=/ s/gvim/& --remote-tab-silent/ :wq $
Вероятно, метод сценария оболочки будет охватывать больше случаев, чем редактирование файла .desktop.