Vim-差分

UNIXのdiffコマンドと同様に、Vimを使用してdiffをより適切に表示できます。カラフルな方法で差分を表示します。この章では、以下の項目について説明します-

  • ファイル間の違いを表示する
  • 差分モードのアクティブ化と非アクティブ化
  • 差分モードでのナビゲーション
  • 差分ウィンドウから変更を適用する

違いを示す

ファイル間の違いを表示するには、以下のコマンドを実行します-

$ vimdiff <file> <file> 
OR 
$ vim –d <file> <file>

たとえば、以下のコマンドは違いを示しています-

上の画像では、マゼンタ色で強調表示されたテキストが一般的です。残りのテキストは赤色で強調表示されます。これは、一般的なテキストの後にいくつかの違いがあることを示しています。

差分モードのアクティブ化と非アクティブ化

すでにvimを使用していて、diffアクションを実行する場合は、次のコマンドのいずれかを使用します-

diffsplit

以下のコマンドを使用して、水平分割を実行します-

:diffsplit filename

上の画像は、message-1.txtとmessage-2.txtという2つのファイルを比較していることを示しています。

垂直方向の拡散

垂直分割を実行するには、次のコマンドを使用します-

:vert diffsplit <filename>

次のウィンドウで開きます-

上の画像は、message-1.txtとmessage-2.txtという2つのファイルを比較していることを示しています。

差分モードでのナビゲーション

差分モードでのナビゲーションは少し異なります。たとえば、あるウィンドウからテキストをスクロールすると、隣接するウィンドウからのテキストもスクロールされます。これはスクロールバインドと呼ばれます。これを有効にするには−

:set scrollbind

これを無効にするには-

:set noscrollbind

このモードでファイルを編集する場合は、次のコマンドを使用してdiff −を更新します。

:diffupdate

差分ウィンドウを切り替える

差分ウィンドウを切り替えるには、次のコマンドを実行します-

Ctrl + w Ctrl + w

Ctrl + wを2回押す必要があることに注意してください。

前の変更にジャンプ

差分ウィンドウで、次のコマンドを実行して前の変更にジャンプします-

[c

次の変更にジャンプ

差分ウィンドウで、次のコマンドを実行して次の変更にジャンプします-

]c

差分ウィンドウから変更を適用する

現在の差分ウィンドウに変更を適用する

隣接する差分ウィンドウから現在の差分ウィンドウに変更を適用するには、-を実行します。

:diffget

たとえば、左側のウィンドウを表示していて、右側のウィンドウから現在のウィンドウに変更したい場合は、上記のコマンドを実行します。

現在のペインから別のペインに変更を適用する

現在の差分ウィンドウから隣接する差分ウィンドウに変更を適用するには、次を実行します。

:diffput

たとえば、左側のウィンドウにいて、現在のウィンドウから右側のウィンドウに変更を適用する場合は、上記のコマンドを実行します。