Emacs: git-gutter が便利過ぎる


あまりに感動したのでつい.

SublimeText にある GitGutter という拡張の Emacs Lisp 版が git-gutter.el である.
簡単に言うと git リポジトリ内で編集中のファイルのどの行が変更されたのかなどを常に表示しておいてくれる.
たぶん git-gutter.el – Emacs JP とかを見れば分かる.

git-gutter
▲左側の緑色の “+” のところね.

今回自分が導入したのは git-gutter-fringe+.el という亜種で,Fringe Helper を使ってアイコンを表示するもの(元のバージョンでは表示用に別のバッファを使うようなトリッキィな感じになっている?らしい).おすすめ.

もちろん git diff が常に表示できたり変更部分にジャンプできたりというのは素晴らしいのだがそれだけではない.
git-gutter+-stage-hunks という関数があって,これが何をやってくれるかというと「編集中のファイルの一部分だけをステージングする」というもの.
つまり,あるファイルの二箇所以上を編集していたとして,それらをひとつのコミットにするのではなく一箇所を変更したコミットを作ってから別の箇所を変更するコミットを作りたいときに,その中間ファイルを裏で作ってステージングしてくれる.

とにかく導入してよかった,簡単だったし.
ついでに Emacs のバージョンを 23 系から 24 に変えた.
今までの .emacs でほとんど変える必要がなく無事動いたが,menu-bar-modetool-bar-mode の引数を省略したときの挙動が変わったようなのでそこだけ修正.


1 comment

Leave a Reply

Your email address will not be published. Required fields are marked *