2012年7月20日

Vim で書く Git のコミットメッセージが文字化けする

Git のコミットメッセージに日本語を含める文字化けするお話.

まぁ,英語使えよって話ですが,私は英語が苦手なのです.
なので,すごく簡単な英語で [git show] 見ればわかるような説明を書くくらいなら,日本語で幾分かしっかり書いてあった方がいいんじゃない?って事で.

普通にやる

# なんか変更してコミット
$ edit homura.txt
...
$ git commit -a

(Vimが立ち上がって,日本語のコミットメッセージを記録)

$ git log

commit ...

    B9)2JBg%1!<%?%$$K%O!<%I%&%'%";EMM$rDI5-!%

(めっちゃ文字化けしとる・・・)
何も読めませんね.

ちなみに私は Cygwin の Mintty を "UTF-8" で使用しているので, [git commit] コマンドに直接コミットメッセージを含めれば文字化けしません.
# 直接コミットメッセージを含める
$ git commit -am " てきとーに編集しちゃったよ ウフフ☆おっけー♪ "

$ git log

commit ...

    てきとーに編集しちゃったよ ウフフ☆おっけー♪

(普通に読める)
これは,ターミナルの文字コードが "UTF-8" となっているからです.

環境変数を設定する

そんなわけで,Vim の保存形式を "UTF-8" に変更してしまえば良いわけです.

しかし,現状の [.vimrc] は "Shift-JIS" を考慮した作りになっていて,[.vimrc] そのものを "UTF-8" オンリーに作り変えるのはちょっと・・・って人はいると思います.
特に Cygwin 使ってる人には多いんじゃないかな.

なので,私は [git commit] コマンドで立ち上がる Vim に引数としてオプションを渡す事で [git commit] の時は "UTF-8" で保存するようにしています.
# Git の環境変数を編集
$ git config --global core.editor 'vim -c "set fenc=utf-8"'
これで Vim がコミットメッセージを保存する際に,"UTF-8" で保存しようとするはずです.


それでは,またの機会に. とぅっとぅる~

0 コメント:

コメントを投稿