gvim sempre nova aba com concha de peixe

Recentemente, mudei para fish shell e queria poder iniciar a partir gvimda linha de comando, mas deve se comportar da mesma forma gedit(apenas uma instância). Então eu aperfeiçoei um pouco a função. A funcionalidade básica que eu tinha em mente era:

Se o gvim não estiver rodando

gvim

Inicie uma nova instância gvim.

gvim <file>

Inicie uma nova instância do gvim e abra file.

Se o gvim já estiver em execução

gvim

Traga a instância em execução para a frente.

gvim <file>

Abra fileem uma nova guia dentro da instância em execução e traga gvim para a frente.

A função

Aqui está o que eu terminei, pronto para colar no seu ~/.config/fish/functions/gvim.fish.

function gvim
if [ (count $argv) -gt "0" ]
command gvim
--remote-tab-silent $argv
xdotool search
--name gvim windowactivate
else
ps
-A | grep -q gvim
if [ "$status" -eq "0" ];
xdotool search
--name gvim windowactivate
else
command gvim $argv

end
end
end