git のコミットメッセージを Emacs で書くときに自動で文字コードを指定する
.gitconfig に以下のように書いておくと
git commit したときに Emacs でコミットメッセージが書ける。
[core] editor = emacsclientw
それで、コミットメッセージに日本語を書く度に
C-x RET f utf-8 してからコミットしてたんだけど
毎回やるのが面倒になってきたので自動化することにした。
.emacs にこんなん書いたらできた。
;;; git commit したときのバッファを utf-8 にする (add-hook 'server-visit-hook (function (lambda () (if (string-match "COMMIT_EDITMSG" buffer-file-name) (set-buffer-file-coding-system 'utf-8)))))
こっちでもできる
(add-hook 'find-file-hooks (function (lambda () (if (string-match "COMMIT_EDITMSG" buffer-file-name) (set-buffer-file-coding-system 'utf-8)))))
んだけど emacsclient で開いてるので
find-file-hooks(ファイルを開くときのフック)を使うよりも
server-visit-hook(emacsclient で開いたときのフック)を使った方がいいかなと思った。
余談
COMMIT_EDITMSG を COMMIT_EDITING に空目して20分くらい無駄にした。トホホ。