diff-so-fancy
Photo by Benjamin Faust | Unsplash / CC BY 0
こっちが元のリポジトリ。
GitHub - so-fancy/diff-so-fancy: Good-lookin' diffs with diff-highlight and more
git diff を見やすくするシェルスクリプトだ。便利そうなので導入してみたが、試してみるとなにやらエラーを吐いている。
ソースを見てみると、sedを使って文字列置換をしていた。拡張正規表現を使っていて、そのためにsedの引数に-Eを渡している。
たとえば、
$SED -E "s/@@$reset_color $reset_color(.*$)/@@ $dim_magenta\1/g"
など。
しかし、私の環境だと、sedのバージョンが古くて-Eに対応していなかった。CentOS6.xなのだが、7系はどうも対応しているようだ。
sedについて調べてみると、どうやら-rを引数指定することで、拡張正規表現を使えるらしいので、全部rに変更してみた。
どうやら動いているようなので、forkしてブランチを切って変更をpushした。
これがそのコミット。 github.com
しかし、単純に変更したソースをforkして使っていると、せっかく本家が更新しても追従出来ない。本家からpullして、自分の変更とマージしながら進めていく方法については、また違う機会に書く。
拡張正規表現とは?
拡張というと、なにやら盛りだくさんなのかと思ったが、単純に特定文字のエスケープを書かなくてよい、ということだけらしい。具体的には、「+」「?」「{」「}」「(」「)」「|」の7つである。
sed/grepコマンドの正規表現 - Miuran Business Systems
$SED "s/@@$reset_color $reset_color\(.*$\)/@@ $dim_magenta\1/g"
となる、のだろうか?試してはいない。
積んでる宿題
- gruntについて調べる
- NULLの定義を調べる
- forkしたブランチと本流のマージ処理