Vimの文字コード関連

  • 56
    Like
  • 0
    Comment
More than 1 year has passed since last update.

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