Use o recurso cliente / servidor do vim / gvim.
gvim --remote-tab myfile
Isso funciona para as versões de terminal e GUI do vim, contanto que elas sejam compiladas ( vim --version ) com o recurso +clientserver . (Opcionalmente, adicione --servername foo para definir o nome da instância, cujo padrão é GVIM .)
Infelizmente, você não pode fazer isso em .vimrc . Você precisará:
-
escreva um script de wrapper , por exemplo,
~/bin/gvim:#!/bin/sh exec /usr/bin/gvim --remote-tab-silent "$@"(
--remote-tab-silentfará com que um novo servidor seja iniciado silenciosamente, se necessário) -
modifique o arquivo gvim.desktop para incluir os comandos do servidor:
$ 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 $
O método de script wrapper provavelmente cobrirá mais casos do que editar o arquivo .desktop.