文字コード関連の設定
Windows環境でGitを利用する際、問題になるのが日本語などマルチバイト文字の扱いだ。Windows環境では通常、日本語の文字コードとしてShift JIS(CP932)が利用されている。いっぽう、Gitではマルチバイト文字の文字コードとしてUTF-8を利用することが推奨されているようだ。また、ファイル名に関してもWindows環境ではCP932が、Mac OS Xを含むUNIX/LinuxではUTF-8(もしくはEUC-JP)が採用されていることが多いため、たとえば日本語のファイル名を持つファイルをWindows環境でコミットした場合、UNIX環境ではファイル名が文字化けしてしまう。
現状ファイル名については、日本語を使わないという解決策しかない。いっぽう、もしコミットメッセージに日本語を利用したい場合は次のような設定を行うとよい。
・msysgitを利用している場合デフォルトの設定ではコミットメッセージの編集にvi(vim)、ログなどの表示にlessを使用するようになっているが、msysgitに付属するvimやlessはマルチバイト文字の表示/入力を正しく行えない。この問題は、これらを適切なものに置き換えることで解決できる。作業手順は下記の通りだ。
1. 日本語対応のlessおよび文字コード変換ツールnkfをインストールするマルチバイト文字に対応している最新版のlessをダウンロードし、msysgitのインストールディレクトリ内の「bin」フォルダ(通常はC:\Program Files\Git\bin)にコピーする。
最新版lessのWindows用バイナリは、lessホームページからダウンロードできる。バイナリアーカイブ(原稿執筆時の最新版はless418w.zip)に含まれる「less.exe」を上記のフォルダにコピーすればよい。
また、nkfについては http://www.asuka.cx/software/nkf/ の「ファイル置き場」にWindows用バイナリが公開されているので、こちら(原稿執筆時の最新版はnkf-2.0.8b.bin.tar.gz)をダウンロードし、含まれる「nkf.exe」を先ほどの「less.exe」と同様msysgitのインストールディレクトリ内の「bin」フォルダにコピーする。
2. Git Bashで日本語を表示できるように設定ファイル(inputrc)を用意するmsysgitのインストールディレクトリ(通常はC:\Program Files\Git)以下の「etc」フォルダ内にテキストエディタで「inputrc」というファイルを作成し、下記のように入力して保存する。
set convert-meta off set meta-flag on set output-meta on set kanji-code utf-83. Gitが使用するエディタ/ページャを環境変数で指定する(設定ファイルprofileを編集)
先ほど「inputrc」を作成したフォルダにある「profile」という設定ファイルの末尾に、下記の行を追加する。
export GIT_EDITOR="'<使用するテキストエディタのパス>'" export GIT_PAGER="nkf -s | less"
このとき、テキストエディタのパス中の「\」は「/」に、「C:」は「/c」に置き換えて指定する。たとえば「C:\Program Files\xyzzy/xyzzy.exe」というエディタを使用したい場合は次のように指定する。
export GIT_EDITOR="'/c/Program Files/xyzzy/xyzzy.exe'"
これで、コミットメッセージの編集を指定したテキストエディタで行えるようになる。なお、日本語のコミットメッセージを入力する際はUTF-8(UTF-8N)で保存しなければならない点に注意してほしい。
・Cygwinを利用している場合Cygwinに含まれるBashやvimはデフォルトでマルチバイト文字の入力・表示に対応している。ただし、CygwinのコンソールはWindowsのコマンドプロンプトと同様、文字コードとしてShift JIS(CP932)を利用しているため、若干の設定が必要である。なお、下記ではエディタにvim、ページャにlvを使用している。これらはともにCygwinのインストーラからインストール可能なので、事前にインストールしておこう。
1. vimの設定ファイルの編集vimの個人設定ファイル「~/.vimrc」に、下記の設定を追加する。
set termencoding=cp932 set encoding=utf-82. Gitが使用するエディタ/ページャを環境変数で指定する
「~/.bashrc」に、下記の設定を追加する。
export GIT_PAGER="lv" export GIT_EDITOR="vim"
なお、日本語入力のOn/Off切り替えはAlt+半角/全角キー(英語キーボードの場合はAlt+`)で行える。
| UTF-8に対応した端末エミュレータ「Poderosa」を使う | ||
|---|---|---|
|
Cygwin版のGitを利用する場合、端末エミュレータとして標準の「Cygwin Bash Shell」ではなく、Poderosaを利用すると便利だ。Poderosaはツールバーで使用する文字コードを切り替えられるので、Gitを利用する場合はこれを「utf-8」に設定すればよい。
なお、Poderosaの文字コードを「utf-8」で使用する場合は、~/.vimrcおよび~/.bashrcを下記のように設定しよう。 ~/.vimrcの設定:set termencoding=utf-8 set encoding=utf-8~/.bashrcの設定: export GIT_PAGER="lv -Ou8" export GIT_EDITOR="vim" |
