web-dev-qa-db-ja.com

Vimで開いている2つの垂直ウィンドウの差分を取る

2つのファイルを開いています。それらは次の横に垂直モードで開かれます。 Vimを終了したり閉じたりせずに、これら2つのファイルを即座に差分できますか?

87
Fatih Arslan

表示されているすべてのウィンドウで差分を開始するには:

:windo diffthis

各ウィンドウで:diffthisを実行します。

差分モードを終了するには:

:diffoff!

!diffoffを現在のタブのすべてのウィンドウに適用します。diffthisに同じ機能があればいいのですが、そうではありません。)

132
Nefrubyr

diffタイプしたい各ウィンドウで:

:diffthis

開いているすべてのウィンドウを比較する場合は、次を実行できます。

:windo diffthis

windoは、開いているすべてのウィンドウにコマンドを適用します)

19
Nathan Fellman

以前の回答をフォローアップすると、

  • :windo difftdiffthisの略)は、開いているすべてのウィンドウでdiffモードを開始します。
  • :windo diffodiffoffの略)は、開いているすべてのウィンドウでdiffモードを停止します。

vimrcには、簡単にするために次のマッピングがあります。

command! Difft windo diffthis
command! Diffo windo diffoff
1
cxw

以前の回答に従って、@ cxwが提供するマッピングを適用しました。次のマッピングは、自動的にNERDTreeを閉じ、開いているウィンドウを比較します。 NERDTreeが近いかどうかは関係なく、同じように機能します。これはかなり頻繁に行うので、かなり時間が節約できました。

command! Difft NERDTreeClose | windo diffthis
0
Jordi Freixa