Vimのファイル保存時の文字コードをUTF-8で保存するようにする
Hugo でブログを作成する際に、vim で markdown を編集し、プレビュー画面を表示しようとしたら、以下のようなエラー画面が出てきてページが表示されない。
エラー画面に出力されているtitle
を見る限り明らかに文字化けしている。
Vim の文字コードが iso-2022-jp
でしか保存されない
文字コードを確認したところ、iso-2022-jp
となっている。
以下のコマンドで文字コードを UTF-8 に修正することで、ページを開くことができた。
set fileencoding=utf-8
vim でファイルを開くたびに、fileencode の値がiso-2022-jp
となっており気持ち悪いので、これを機に vimrc を見直すことにした。
Vim の fileencode
で utf-8 を開くようにする
vimrc を確認する。(自分は neovim を使っているため、~/.config/nvim/init.vim
を確認)
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
fileencodings
は読み込み時の文字コードを指定する設定である。
カンマ区切りで設定することで、指定した文字コードを読み込むことができるようになる認識だった。
しかし、実際は左から順番に読み込んでみて、最初に成功した文字コードが fileencoding として設定される。そのため、一番左に設定されていた iso-2022-jp
に設定されてしまっていた。
fileencodings の設定を以下に修正したところ、UTF-8 でファイルが保存されていることが確認できた。
set fileencodings=utf-8,euc-jp,sjis,cp932,iso-2022-jp
さいごに
なんとなくで vimrc の設定はするもんじゃない。