読者です 読者をやめる 読者になる 読者になる

彼女からは、おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Emacs の git-commit-mode をスクリーンショット付きで紹介するむら

最近、嫁が語尾に「むら」を付けたがるのでなんだか伝染ってしまいました...

...というのは余計な情報ですが、今回紹介するのは git-commit-mode という Emacs のモードです。Git のコミット編集画面をカラー表示してくれます。僕は結構お気に入りなのですが、自分の周りであまり知られていなかったので書きます。どや顔はしていません。

ビフォー&アフター

さて、Git のコミットメッセージを書くときは下のような地味ーな感じになると思います。

それが git-commit-mode を導入すると次のようになります。

なんということでしょう!見事に彩られました。...というわけで本題に入ります。

git-commit-mode の入手と設定

git-commit-mode は、Emacs のモードのひとつですが、標準では入っていません。下記からダウンロードできます。

ダウンロードした git-commit.el を load-path が通った場所に置いて、下記を初期化ファイル(~/.emacs 等)に加えてください。

;; git-commit-mode
(require 'git-commit)

Git 側の設定

Git コミットメッセージの編集はデフォルトでは vi が使われるようになっているので、これを emacs に変更します。

$ git config --global core.editor "emacs"     ## emacsclient の話はまた今度

ちなみに「git config --global」コマンドを実行すると、設定が ~/.gitconfig に書き込まれます。~/.gitconfig をエディタで直接編集してもかまいません。

[core]
        editor = emacs     ## emacsclient の話はまた今度

設定は以上です。あとは「git commit -v」とか「git commmit --amend」とかしたときに自動的に git-commit-mode になり、カラー表示されます。

少しだけ自分好みに

あと、先の「アフター」の見本について、コミットメッセージの 1行目と 2行目が強調表示されるのがちょっと抵抗があったので少しだけ手を加えました。

(require 'git-commit)

;; コミットメッセージ 1行目のカラー表示を解除
(set-face-foreground 'git-commit-summary-face nil)

;; コミットメッセージ 1行目の太字を解除
(set-face-bold-p     'git-commit-summary-face nil)

;; コミットメッセージ 2行目のカラー表示を解除
(set-face-foreground 'git-commit-nonempty-second-line-face nil)

このあたりは好みの問題ですけどね。もっと詳細をいじるときにはソース(git-commit.el)を参照してください。

以上です。さいならむら。