既に起動しているgVimの新しいタブでdiffを行う

Vimのdiffがすごく楽なので使いまくり始めた。単にgVimを新たに起動してdiffを行うだけならば、-dオプションとファイルを2つ渡してやれば良い。が、既に起動しているgVimの新しいタブでdiffを行う方法がわからない。--remote-tab-silentオプションを追加するだけではうまくいかないようだ。色々調べたところ、公式MLのアーカイブにあったスレッドで、--remote系のオプションではExコマンドを1つ指定して実行することができるので、それを利用してvertical diffsplitを実行してやれば良いことがわかった。

つまり、foo.txtからbar.txtとの差分を既に起動しているgVimで開く場合は、

$ gvim --remote-tab-silent +"vertical diffsplit bar.txt" foo.txt

とする。foo.txtを既に起動しているgVimで開き、bar.txtとの差分を表示するという意味になる。foo.txtにあたるファイルに空白が含まれている場合は単にダブルクオートでくくれば良いだけだが、bar.txtにあたるファイルのパスに空白が含まれる場合はバックスラッシュでエスケープしなければならない。

gVimを使い始めて一月ほど経ったけど、まだカーソルキー使ってたり、「Esc押してんの? だっせーなwww」とか言われたりしてる。Web+DBのVim特集読んで精進します。まだ買ってないけど。まぁでも最近は困ることが減ってきた気もする。