よんちゅBlog

― このブログは自分用のメモや日々の問題などを共有するためのものです ―

20121005185841 お知らせ:  2013/07/17 ブログデザインをリニューアルしました。

MacでGit使用時に文字化け

MacでGitのdiffを使用したらなぜか文字化けした。
PAGER(ページャ)がうまく文字コードを認識できていないっぽい。

$ git diff
ESC[1mdiff --git a/test_p.txt b/test_p.txtESC[m
ESC[1mindex 8b4a42d..2cb5f33 100644ESC[m
ESC[1m--- a/test_p.txtESC[m
ESC[1m+++ b/test_p.txtESC[m
ESC[36m@@ -1,2 +1,3 @@ESC[m
 This is a test file.ESC[m
 aaaaaESC[m
ESC[32m+ESC[mESC[32mbbbbbESC[m

とうことで以下のようにGitで使うPAGERを"lv"に変更
(環境変数"GIT_PAGER")

※ lvコマンドはMacにはデフォルトではインストールされていません。
 -cオプションはカラー表示対応のため

$ export GIT_PAGER="lv -c"
diff --git a/test_p.txt b/test_p.txt
index 8b4a42d..2cb5f33 100644
--- a/test_p.txt
+++ b/test_p.txt
@@ -1,2 +1,3 @@
 This is a test file.
 aaaaa

あとはこの環境変数の設定を".bash_profile"などに設定しておけばOK


追記:
上では文字化けと表現していたが、正確にはGitのカラー表示を有効にした場合にカラーコード用のエスケープシーケンスがそのまま表示されていたためこのような表示になっていた。
よってGIT_PAGERに"less -R"とすることでlessを使用した場合でも上記現象を回避することができる。