vim は、伝統的 unix ライクなスクリーンエディタです。
筆者は、このタイプのスクリーンエディタを20年以上愛用しています。
vim7.3 は多くの機能を「ユーザからのパッチ」で提供するという、一風変わったスタイルで、本日(2013/04/02) 現在で、その数は 875 に及ぶようです。
FreeBSD では、本日(2013/04/02) 現在でパッチ 669 までのものが提供されています。
最近、ports でソフトウェアの更新を図ると、日本語混じりのファイルを編集しようとすると、以下のように文字化けするようになりました。
先月あたりに発見し、原因が判らずじまいだったが、以下のブログ記事が解決してくれました。
vim で日本語が中途半端に文字化け (solved)
http://lesguillemets.blogspot.jp/2013/03/vim-solved.html
ここに書いてある記述にしたがって、診てみました。
# vim --version
・・・省略・・・
+mouse_xterm -mouse_urxvt -mouse_sgr -multi_byte +multi_lang -mzscheme
・・・省略・・・
赤文字のところに注目。同じように multibyte が何故か無効になっています。
全角文字はマルチバイトでないと対応できませんからね。
こうなれば、対処は暫定ですが簡単です。
ports の vim に以下のように変更を加えます。
# cd /usr/ports/editors/vim
# vi Makefile
(以下赤文字部分を追加)
MAKE_ARGS+= CONF_ARGS="--prefix=$PREFIX --with-tlib=termlib $CSCOPE_ARG --enable-multibyte "
# portupgrade -rf vim-lite-7.3.669
再構築が完了したら、再度確認します。
# vim --version
・・・省略・・・
+mouse_xterm -mouse_urxvt -mouse_sgr +multi_byte +multi_lang -mzscheme
・・・省略・・・
今度は大丈夫そうです。
確認のために、同じファイルを編集してみます。
おかげさまで修復できました(^^)
ports の不具合なのか? 環境の問題なのか?