Vimの使い方 – Diffモード/コマンドで差分を表示する方法【色の設定方法も】

midSun31midSun31
IT・デジタル

2つのファイルの差分を比較したいケースはよく発生します。macやLinuxならdiffコマンド、WindowsならWinMergeというツールを利用することが多いかと思います。

Vimエディタでは、差分を比較するためのdiffモードという便利な機能があります。

この記事では、Vimエディタのdiff機能で差分を表示する方法について紹介していきます。

差分の色の設定方法についても合わせて紹介します。Vimエディタのバージョンは8.1、OSはWidnows10を使用しています。

Diffモードで差分を表示する方法

VimのDiff機能で差分を表示するには、Vim起動時に表示する方法とVimのエディタ上から表示する方法があります。

方法1: Vim起動時に差分を表示する

Vimエディタで差分を表示するためには、「vim -d」コマンドに続けて比較したいファイル名を並べます。

vim -d ファイルパス1 ファイルパス2
vim -d hello1.php hello2.php #例

ちなみにmacやLinuxでは「vimdiff」コマンドからでも同様に呼び出すことができます。

コマンドを実行すると以下のように2つのファイルが表示されます。変更されている部分、加減されている差分の行がすぐに判断できます。

方法2: Vimエディタ上から差分を表示する

既に一つのファイルを開いている状態で他のファイルとの差分を見たい場合は、ノーマルモードから以下のコマンドを入力します。

:vertical diffsplit ファイルパス

上記のコマンドで、同じように差分を表示することができます。

差分の色設定を変更する方法

差分はわかりやすいのですが、差分を表すカラーのデフォルトの設定を変更したいケースがあると思います。

Diff機能の色は、設定ファイル「vimrc」に下記の項目を追加することで設定可能です。

*vimrcの編集方法が分からない場合は、『Vimの設定ファイル「vimrc」を編集して設定を変更する方法』を参考にしてください。

  • highlight DiffAdd: 追加された行の色
  • highlight DiffDelete: 削除された行の色
  • highlight DiffChange: 変更された行の色
  • highlight DiffText: 変更があった文字列の色

変更行の変更があった文字列のみの色設定は、「highlight DiffText」で指定できるようになっています。

色の設定は、「ctermfg」で文字の色を、「ctermbg」で背景色を設定します。具体的なvimrcの設定は以下のようにします。

highlight DiffAdd ctermfg=カラー番号 ctermbg=カラー番号
highlight DiffDelete ctermfg=カラー番号 ctermbg=カラー番号
highlight DiffChange ctermfg=カラー番号 ctermbg=カラー番号
highlight DiffText cterm=bold ctermfg=カラー番号 ctermbg=カラー番号

指定できるカラー番号は、『256 Terminal colors and their 24bit equivalent』のページを参考にしてください。

太字など字体を変更したい場合は、「cterm」で指定します。

上の設定をvimrcに保存した後、再度Diff機能を使ってファイルを開くと、色の設定変更が反映されます。

以上、Vimエディタのdiff機能で差分を表示する方法でした。

IT・デジタル
Howpon[ハウポン]

コメント