cygwinのgitでは、以下を設定すれば、vimでのコミットメッセージに日本語が使用でき、コミットログもUTF-8に統一された。
(cygwinのターミナルはPoderosaを使用して、エンコーディングをUTF-8にしておく。)
.vimrcに以下を設定する。
set termencoding=utf-8 set encoding=utf-8 set fileencodings=utf-8,iso-2022-jp,shift-jis,euc-jp
・git configで以下を設定する。
$ git config --global i18n.commitencoding UTF-8
参考: cygwinのgitで日本語を文字化けさせない - もうカツ丼でいいよな
・git logがpager(lessとか)で表示されると、UTF-8のログメッセージがエスケープされて表示されるので、pager を cat にする。
$ git config --global core.pager cat
参考: git-config core.pager を cat にした / core.editor を emacsclient にした - 刺身☆ブーメランのはてなダイアリー
■ 問題点
.vimrcのfileencodingsの一番目をutf-8にしたことにより、どのファイルを開くときもutf-8として認識されてしまう。でもそうしないと、最初に開くときに既にASCIIだけのテキストであるgitのコミットメッセージはUTF-8にならない。
参考
ずんWiki - vim
vim の文字コード判定の仕組みは以下の通りです。
fileencodings の設定を前から順に試してはじめにマッチしたものが採用される
* encoding や fileencoding の設定値が途中に発見されるとそこで判定を止めてしまい後の設定は無視される
o この動作により、UNIX環境(euc-jpの場合)では euc-jp が fileencodings の前の方に設定されていると、cp932 や utf-8 で書いたファイルが文字化けてしまうので気をつける必要がある。
* encoding に設定される文字コードは fileencodings に見つからなかったときのデフォルト値に使われるので fileencodings に設定する必要は無い。
「cygwinのgitで日本語を文字化けさせない」への1件のフィードバック