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-silent
fará 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.