Vimの内部文字コードする(encoding)
set encoding=utf-8
とするとVimの内部文字コードがUTF-8に設定される。
バッファの内容はこの文字コードで扱われる。
encodingがutf-8に設定された環境で以下のコマンドを実行すると「3」と表示されるはずである。
:echo len('あ')
これはUTF-8で「あ」が3バイトであることを示している。
encodingは後で設定しても反映されないため、.vimrcに書く必要がある。
ファイル書き込み時の文字コード(fileencoding)
set fileencoding=utf-8
fileencodingが設定されていると、バッファの内容がファイルに書き込まれるとき、
(すなわち:w
したとき)にencodingからfileencodingに文字コード変換が行われる。
fileencodingが設定されない場合は、encodingと同じになり、文字コード変換は行わない。
fileencodingの設定は、書き込み時にファイルに書き込まれる文字コードを設定するもので、
バッファに開かれている内容はencodingの設定で扱われることに注意。
読み込み時の文字コード(fileencodings)
set fileencodings=utf-8,cp932
読み込み時にどの文字コードとして読み込むかを指定する。
カンマ区切りで設定し、左から順に試して最初に成功した文字コードで読み込み、
encodingに文字コード変換されてバッファが開かれる。
成功した文字コードはそのバッファのfileencodingに設定される。
文字コードを指定して再読み込み
:e ++enc=cp932
詳細
:help encoding
:help fileencoding
:help fileencodings