試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

colordiffで、diffコマンドの出力に色を付ける

diffコマンドを実行して、端末上で結果を見たい場合、色が付いていると分かりやすい。colordiffというラッパーを使用することで、これを実現できる。
Gentoo LinuxでもDebian,Ubuntuでも「colordiff」というパッケージになっているので、インストールは簡単。

使用方法

diffコマンドと同様に(オプションも含めて)そのまま使える。エイリアスとして、シェルの初期化ファイル(${HOME}/.bashrcなど)に

alias diff=colordiff

と設定してもOK。
あるいは、既にファイルに出力された*.diff/*.patchファイルを

$ cat test.diff | colordiff | less

のようにして、色付けフィルタとしても使える。

設定

${HOME}/.colordiffrcというファイルで、主に色の設定ができる。/etc/colordiffrcをコピーして編集するとよい。

banner=no

出力の先頭にバージョン情報を付けないようにできる。手元のGentoo Linuxのパッケージではデフォルトで「付けない」ようになっている。

color_patches=yes

と書くと、

$ diff -u sample.txt.orig sample.txt > sample.diff

のようにしてファイルにリダイレクトされた際、色を変えるエスケープシーケンスを含めることができる(デフォルトでは含めないようになっている)。実用性については怪しい。

以下、デフォルトの色が好みに合わなかったので修正した、という程度の設定。
ファイル名: ~/.colordiffrc

banner=no
color_patches=no

plain=off
newtext=green
oldtext=cyan
diffstuff=yellow
cvsstuff=white

この配色がよいとは必ずしも言えないので、好みで設定するか、気にならなければデフォルトでもよい。

(2008/10/8)「color_patches」の設定項目名を修正

使用したバージョン:

  • colordiff 1.0.6-r1