J'ai trouvé l' --remote-tab-silent
option dans un alias pour le travail, pour la plupart, sauf quand j'ai voulu passer des options à gvim (par exemple, gvim --serverlist
) - dans ce cas, gvim traite l'option comme un littéral nom de fichier qui n'est pas bon que tout d'abord ce n'est pas ce que tu voulais, et d'autre part, vous devez nettoyer les tampons de votre maintenant entachée vim session.
Ce n'est pas pratique d'utiliser un alias ou de résoudre vim
/gvim
différemment pour certains cas comme les suivants.
gvim
gvim /path/to/files
gvim --serverlist
gvim -p /path/to/file1 /path/to/file2
gvim -t tag filename
Ma solution est la suivante script wrapper autour de gvim
(~/.bin/gvim
) que Tom Veiner donne à penser, mais cela ne fera que l'utilisation d'un serveur existant si aucun des arguments sont gvim
des options - dans le cas contraire, un nouveau serveur est créé.
#!/usr/bin/perl
use v5.10;
sub gvim { exec { '/usr/bin/gvim' } '/usr/bin/gvim', @_; }
if (scalar @ARGV) {
unshift @ARGV, '--remote-tab-silent' unless /^--?/ ~~ @ARGV;
gvim @ARGV
}
else {
chomp(my $serverlist = `gvim --serverlist`);
if (length $serverlist) {
gvim '--remote-send', '<Esc>:tabnew<CR>'
} else { gvim }
}