nDiki

2013年12月4日 (水)

Git の contrib/diff-highlight で文字列レベルの差分ハイライトと lv (未解決)

Git の contrib/diff-highlight を使って行単位ではなく文字列単位で異なる部分をハイライトしてくれるという記事を教えてもらった。

自分の設定では .gitconfig の color のところは

 [color]
         branch = auto
         diff = auto
         grep = auto
         interactive = auto
         showbranch = auto
         status = auto

となっていて pager 指定は .bashrc で

 if command -v lv > /dev/null; then
   export GIT_PAGER='lv -Ou8 -c'
 fi

と今している。diff-highlight*1 を PATH の通っているところにおいて、

 GIT_PAGER='diff-highlight | less -R' git diff HEAD~..HEAD

とかすると文字列単位で差分が反転色で表示される。

lv だと \x1b[7m で反転させるとそれまでの色属性が落とされてしまうのか、行のそれ以降が黒白/白黒になってしまう。 lv v.4.21*2ソースコードを軽くみたけどちょっとしっかり読まないと対応できなさそうなので、今日は諦め。

diff-highlight は Perl スクリプトなので、こちらでハイライト開始とハイライト終了時のエスケープシーケンスをいじって lv で見栄え良くなるようにするのが簡単でいいかもなあ。

*1Debian GNU/Linux だと /usr/share/doc/git/contrib/diff-highlight/diff-highlight にある

*2(Debian GNU/Linux だと v.4.51.a が入っているので、見たのはちょっと古いバージョンだった模様)

2014年02月05日追記

nkf を通す方法を教えてもらった

スポンサード リンク
[ 12月4日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.182535s / load averages: 0.96, 0.69, 0.63
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker