Recentemente, mudei para fish shell e queria poder iniciar a partir gvim
da 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 file
em 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