Mercurial(hg)のstatusとdiffをカラー化する

http://farm3.static.flickr.com/2454/3650199713_4f4d255d05.jpg

カラー化するのは以下の記事で十分なのですが、 詳しい設定はもうちょっと調べないとわかりませんでした。 日本語の記事が探した感じ見つからなかったので、メモを残しておこう。 [1]

status や diff を色分け表示にする - technolazy.snapshot

colordiffインストールとその他設定

淡々と。

$ sudo apt-get install colordiff
$ vim ~/.hgrc

これだけ。

結局、$HOME/.hgrcは以下のような感じに。色の詳細設定は [color]セクションを追加して設定します。MQ使ってない(ってか、 何かあんまりわかってない。)ので、qseriesは設定していません。

[defaults]
cdiff = -q

[extdiff]
cmd.cdiff = colordiff
opts.cdiff =

[extensions]
hgext.color =
hgext.extdiff =
color =

[color]
status.modified = green bold underline
status.added = magenta bold underline
status.removed = red bold blue_background
status.deleted = red underline
status.unknown = blue bold
status.ignored = black bold

diff.diffline = none
diff.extended = cyan bold
diff.file_a = red bold
diff.file_b = green
diff.hunk = yellow bold
diff.deleted = blue bold
diff.inserted = green bold
diff.changed = white
diff.trailingwhitespace = bold red_background

好みに合わせて適当にいじってください。

フォントカラー: black, red, green, yellow, blue, magenta, cyan, white
装飾          : bold, italic, underline, inverse
背景カラー    : black_background, red_background, green_background,
                yellow_background, blue_background, magenta_background,
                cyan_background, white_background

使ってみるとわかりますが、パイプ経由でlessとかすると カラー化されません。 結局、$HOME/.bashrcあたりにこんなのを追加しないとダメなのか。あー。

alias hgdiff='hg diff | colordiff | less -r'

footnote

[1]参考にしたのは2008年の記事なんだけど、あんまりMercurialって 使われてないのかな?gitとかのほうが使われてるのかな? カラー化自体あんまりしない? 思うんだけど、ツール名称の"Mercurial"とコマンド名"hg"って違い過ぎるよね。 あとhgでググるとレイザーラモンHGが出てくるw