10.17.2020

vimのエンコードの問題

GVimでエンコードをcp932からutf-8に変更した。Windows10で。

gvimrcファイルとか_vimrcファイルで、

set enc=utf-8

set fenc=utf-8

とした。そうしたら起動するたび、終了するたびにviminfoのエラーで怒られた。

「viminfo: 不正な先頭文字です」

と言われる。C:\Users\[user name]\の下に_viminfoファイルがあって、それがエンコードを変えたときにたぶん変な文字になっちゃって、認識不可になったのだと思う。

この_viminfoにはレジスタとか検索とかコマンドの履歴が残っているので、意外と重要と思うけどそれがパアになってもいいならこのファイルをとにかく削除してもエラーはでなくなる。Vimを終了するとまた新しいのが生成される。

元の_viminfoを残しておくには、エラー元の部分を探して削除することが必要。でもエンコードを変えると元のファイルは文字化けしたままになるかも?別ファイルをVimで開いたときに:regとか参照はちゃんとできるみたい。文字化けするときはlatin1とかよく分からないエンコードになっていることがあって、これはエンコード認識に失敗したからということらしい(https://www-creators.com/archives/1486)。

エンコードは:set fencで確認できる(https://l-w-i.net/t/vim/encode_001.txt)。別のエンコードで開きたいときは

:e ++enc=[encoding]

とする。encodingにはutf-8, cp932, sjis, など。

utf-8にめでたくできても、日本語の場合Vimのメニューとかが文字化けしちゃう。これはhttp://sea-mountain.hatenablog.jp/entry/20100906/1283792259を参考にして、

source $VIMRUNTIME/delmenu.vim
set langmenu=ja_jp.utf-8
source $VIMRUNTIME/menu.vim

を_vimrcとか設定のファイルに書けば直る。すごい。


0 件のコメント:

コメントを投稿