Vimで2つのファイルを比較する


63

Vimで2つのファイルを並べて表示することはできますか?もしそうなら、どうすればこれを行うためにエディターをセットアップできdiffますか?Vim内の2つのファイル間を移動する方法はありますか?

コマンド:next:prevコマンドを知っていますが、これは私が望んでいることではありません。2つのファイルを並べて表示するのは本当に素晴らしいことです。

回答:


43

サイドバイサイドビューを開きます。

Ctrl+w v

それらの間の変更:

Ctrl+w h or l

diffのようなビューが必要な場合は、vimパッケージの一部であるvimdiffコマンドをチェックアウトします。

vimdiff file1.txt file2.txt

2
2つのウィンドウ間でスクロールをロックする方法はありますか?
ザイド

1
はい、vimdoc.sourceforge.net / htmldoc / options.html#%27scrollbind%27をチェックしてください-vimdiffではデフォルトです。
maxschlepzig

1
私は通常、コマンドラインで「diff file1 file2」を使用します。
djangofan

2
@Zaidの使用vimdiff file1.txt file2.txt(以下を参照)
エドゥアルドクオモ

42

-Oオプションで分割画面モードでvimを開くこともできます:

vim -O file1 [file2 ...]

差分モードをオンにするには:diffthis、各ペインでコマンドを実行する必要があります。

別のユースケースシナリオは、vimで既に1つのファイルを開いており、それを開いて別のファイルと比較する場合です。次に、次のvimコマンドを使用できます。

:vs otherfile (open otherfile in vertical split screen)
:diffthis (turn on diff mode in original file)
Ctrl+w l  (swap to newly opened file)
:diffthis (turn on diff mode in opened file)

その後、vimコマンドを使用して、各ペインでdiffモードをオフにできます:diffoff

編集
そして、言及されていない他の標準的なもの:-

vim -d file1 [file2 ...]

これは、vimdiff直接呼び出すことに相当します。


11
:windo :diffthis最後の3つのコマンドの代わりに使用できます。
ベルンハルト

2

または、VIMで最初のファイルを開き:vert diffsplit file2 :vert、画面を垂直に分割します。

diffsplit diffを実行し、ファイルを分割し、スクロールしてファイルをロックします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.