Windows の gvim で扱えるエンコーディングを増やす
Windows 版の gvim は、そのままだと iso-2022-jp でファイルが保存できなかったり set encoding=utf-8 するとメッセージが文字化けしたりとエンコーディングの扱いに難があるので、いくつかライブラリを追加するとよい。
まず一つ目は iconv.dll。Windows 用 libiconv のバイナリは色色なところが配布しているが、香り屋さんのところの Libiconv DLL 1.10-20060516 for Windows
が比較的新しい。ダウンロードすると書庫ファイルの中に色色入っているが、必要なのは iconv.dll だけ。このファイルを gvim.exe と同じフォルダに入れる。配布元によっては名前が libiconv.dll だったり libiconv2.dll だったりするが、iconv.dll に直さないと次に intl.dll を入れ替えた時に嵌まる。
続いて intl.dll。Gvim に元元付いてくるものはエンコーディングの変換が十分にできないので、encoding オプションを変更するとエラーメッセージなどが文字化けしてしまう。GNU のミラーサイトのどこか (例えばhttp://core.ring.gr.jp/pub/GNU/gettext/) から Windows 用バイナリ (ファイル名に woe32 とあるもの) をダウンロードし、intl.dll を取り出す。そしてこれを gvim.exe と同じフォルダに libintl.dll という名前で置く。
これで、encoding オプションを utf-8 にしてもメッセージが文字化けすることはなくなる。また iso-2022-jp や euc-jp などのエンコーディングも扱えるようになる。
Windows コンソール版の vim では、単に set encoding=utf-8 とすると表示が文字化けしてしまうので、set termencoding=cp932 で表示用のエンコーディングを設定するとよい。コンソール上ではシフト JIS で使える文字しか表示できないが、エディタ内部ではきちんと Unicode の文字を扱える。(ただし、IME による日本語の入力は文字化けする)
| 固定リンク

コメント
> Windows 版の gvim は、そのままだと...set encoding=utf-8 するとメッセージが文字化けしたり
昨日はこの問題で丸一日悩んでいましたが、今朝は奇跡的にこのページを見つけることができました。iconvを新規導入、libintlの入れ替えで、見事に、問題は解決しました。ありがとうございました。
質問ですが、このような情報は、どうやれば入手することができるのでしょうか?
------
また、この件とは無関係ですが、Windowsの上では日本語のフォントがLinux/GNOMEに比べて、とってもしょぼいのですが、簡単に、きれいに、まともにする方法はあるでしょうか?
投稿: H.I. | 2010年10月11日 (月) 09時16分
> このような情報は、どうやれば入手することができるのでしょうか?
これはどうしたんだっけなぁ。Vim の公式サイトに英語で書いてある説明とかをいろいろ読んだ気がしますが、あまりよく覚えていません。
フォントの選び方はなかなか難しいですね。自分は
set guifont=Consolas:h10,Lucida_Console:h10:w5 guifontwide=MS_Gothic:h10:w5
でお茶を濁していますが、MS ゴシックだとやっぱりあまりかっこよくありませんね (一応アンチエイリアスは効くものの)。前は guifontwide=M+1VM+IPAG_circle:h10 だったこともありました。いずれにしても、gvim のフォント設定だけではあまり細かいことはできないので、自分好みの綺麗なフォントを見つけてインストールするのが多分近道かと思います。
投稿: まじかんと | 2010年10月11日 (月) 11時19分
iconv.dll と intl.dll は香り屋版 vim に付いてくるやつを使うほうが新しくていいかも。というか、本家版 vim にこだわりがなければ単に香り屋版 vim を使えばいいだけの話だな。
投稿: まじかんと | 2011年12月30日 (金) 14時17分