sedで「git blame」に色づけ
CUIで「git blame」を打っても全く色がつかずに見づらいと思っていたところで、会社の先輩がsedでログの標準出力に色を付けていたことを思い出し、やってみました。
colorize_git_blame.sed
#!/bin/sed -rf s/\([a-z0-9]\+\)/\x1b[31m\1\x1b[0m/ s/\((\)\([a-z0-9]\+\)/\x1b[35m\1\x1b[0m\x1b[32m\2\x1b[0m/ s/\([0-9]\+\)\()\)/\x1b[33m\1\x1b[0m\x1b[35m\2\x1b[0m/ s/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\)/\x1b[34m\1\x1b[0m/
Macに始めから入っているsedでは何故か着色出来なかったので、homebrewでgnu-sedをインストール。
brew install gnu-sed
最後に下のようなエイリアスを作成。
function gbl(){ git blame $@ | gsed -f "(sedファイルの場所)/colorize_git_blame.sed" | less }
「gbl FILE_NAME」でFILE_NAMEファイルの色付きblame が出来ます。
なお、git blameの出力を加工している場合はこれでは駄目かもしれないです。