Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

msysgit でどうしても日本語文字化けが治らなかった際の対処

$
0
0

Gitで日本語コメントを書いたら、文字化けしてしまった。

Qiita - msysgit で日本語を使いたいを参考に
設定してみたが、コミットログの文字化けだけがやはり治らず....

どうしたものかと、やってみた試行錯誤をまとめておきます。
(注:ものすごいイージーミスでした)

環境

  • Windows7 + msysgit(git1.9.4)
  • コミットログは、msysgit内蔵のVimで編集したい
  • gitbash上では、文字コードをすべてUTF-8で扱いたかったので、以下の設定を.bashrcもしくは.bash_profileに設定
.bash_profile
export LANG=ja.UTF-8

何故か.vimrcの設定が反映されない

.vimrcの作成

参考サイトには以下のようにある.

これらをまとめて $HOME/.vimrc に保存しておく。

.vimrc
setencoding=cp932
settermencoding=cp932
setfileencoding=utf-8setfileencodings=cp932,utf-8

で、この設定を $HOME(WindowsではC:\Users\***\)に保存して試したが、
なにやらうまく反映されていないっぽい.

$ vim
:setfencfileencoding=

設定してるはずなのに、空だと...?

.vimrc、認識されている?

そこで見つけたページがこちら.
Stackoverflow - Where is vimrc or vim profile for github's mingw32 shell on a Windows machine?

さっそく、自分のvimrcがgitbashに正しく認識されているか確認したところ...

$ vim --version | grep vimrc
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"

.vimrc じゃなくて _vimrcじゃないかというイージーミス発見.
早速ファイル名変更.

vimrcのエラー

ファイル名変更した上で、反映されているか確認したが、
あいも変わらず fileencodingが空.

なんでだろうなぁ と眺めていたところ、
vimの起動時にエラーメッセージが一瞬表示されたような気がしたので確認.

$vim 2>vim_log; cat vim_log
Error detected while processing c:\Users\****\_vimrc:
line    3:
E474: Invalid argument: encoding=
line    4:
E518: Unknown option: cp932
line    5:
E518: Unknown option: utf-8
line    6:
E518: Unknown option: utf-8,cp932
Press ENTER or type command to continue

えっ?

$ cat ~/_vimrc
set number

set encoding= utf-8
set termencoding= cp932
set fileencoding= utf-8
set fileencodings= utf-8,cp932

こんなアホみたいなエラー出ていれば、vimrcが反映されるはずないだろ!

というわけで、以下のように、=で揃えていた部分を削除して、保存しなおした.

$ cat ~/_vimrc
set number

set encoding=utf-8
set termencoding=cp932
set fileencoding=utf-8
set fileencodings=utf-8,cp932

無事fencが反映され、コミットログを保存しても、文字化けしなくなりました.

まとめ

原因

Vimの設定ミスが原因で、コミットログがShift-JISで保存されていましたというオチ.
その設定ミスが、本筋と関係ないところで起きていたイージーミスだという残念っぷり.

  1. msysgit内蔵のvimが求める環境設定は .vimrc ではなく、 _vimrc
  2. vimrcを綺麗に整形しようとするな!

悟り

何事でも「うまくいかないな」と思ったら、上流の原因から当たること.
今回の場合、gitのコミットログが怪しいと分かった時点で、
エディタの設定から見直すのが近道だった.


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>