まずもともとどういう状況だったかという話.端的に言えば
「たとえば日本語の文字が,'encoding は合ってるのに' '中途半端に' 化ける.」
たとえば,
簡単なチェック.Englishと書かれた文書を開くとこう表示される:
簡~M~X~A�~C~A~B�~C~C~B�~NEnglishvim で文字化け,となると encoding の情報ばかりでてくるので,その辺で色々やってみたが解決しない.
結局全部 utf-8 で揃っている上,ここでいうと 「簡」はちゃんと表示されてるし,
長い文章でもところどころこうして漢字がちゃんと出てくるところをみると,
どうもそのへんのことではなさそうだ.
うーんそうなるとなんか知らんけどフォントとかそのへんかしら,
などと思いつつ,時々検索したりはしながらまあ日本語含むのは gedit でいいや,
というわけでこんにちに至るまで解決されなかったわけですが.
結論:"僕のインストールしてた vim の設定ではマルチバイト非対応!" (^^)!!
えっ
を実行した結果がこちら:$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 4 2012 20:45:16)
Included patches: 1-538
Compiled by ******@**********
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv -cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() +gettext -hangul_input -iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm -mouse_urxvt -multi_byte +multi_lang -mzscheme +netbeans_intg
+path_extra -perl +persistent_undo +postscript +printer -profile -python
-python3 +quickfix +reltime -rightleft -ruby +scrollbind +signs +smartindent
-sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
(後略)
燦然ときらめく-multi_byte
. そこで ~/vim
(どこでもソースを clone してあるとこ)でで解決.#はルート権限,$ ./configure --enable-multibyte $ make # make install
$ sudo
でもよろしい. 一行目はでもよい模様(いろいろくっついてくる).$ ./configure --with-features=big
実は最初こっちでやりかけて
# make install
を忘れてて何も起こらず,multibyte でやり直したときに気がついた.
仏語の ç など一部の文字化けと,é とか打った時に2文字分スペースができてしまう問題も解決.
そもそもこの解決策にいきあたったのが仏語の方を調べてた時だった.
(英語で情報集めるなら日本語が云々より仏語が云々のほうが多いだろうという).
そして è とかその辺は全く問題なく表示されてたので盲点でもありましたねー.
しかし $ vim --version はやったことがあったはずなのにどうして気づかなかったのか.
一応参考サイト:
Vim - General - French characters (how?)
: 最初に行きあたって
1. Most of the following applies only to Vim versions with multi-byteで僕を !!!!!!!!!! の海に投げ込んでくれたところ.僕の環境では平然と 0 を返してきた.
(actually, multi-encoding) support:
:echo has("multi_byte")
should return 1.
vimrc - Vim doesn't support unicode? - Stack Overflow
: 上のを踏まえて.
$ ./configure --with-features=big
が紹介されてる. ソースインストールvimで日本語が文字化け - マツモブログ
: そういうことかとわかって検索すると行きあたるものです.
と,いうわけで,日本語を扱う文書を書くときに vim がいいのかどうかは別にして,
めでたしめでたし.
ところで過去記事漁ると僕 vim はソースからインストールしてたのか……? 完全に忘れてた…
FreeBSD 9.1Rな環境で、ports にて vim 7.3-lite(X11サポート抜きのvim) をソースコードから構築すると、何故か同じような中途半端な文字化けが起きて原因判らなかったですが、ここに記載されている内容で解決できました。
ReplyDelete情報提供どうもです。
お役に立てたようで嬉しいです.コメントでお知らせくださってありがとうございます!
Delete