Vimのファイル保存時の文字コードをUTF-8で保存するようにする

Date: 2020/02/22
Tags: Vim

Hugo でブログを作成する際に、vim で markdown を編集し、プレビュー画面を表示しようとしたら、以下のようなエラー画面が出てきてページが表示されない。

エラー画面に出力されているtitleを見る限り明らかに文字化けしている。

表示されたエラー画面

Vim の文字コードが iso-2022-jp でしか保存されない

文字コードを確認したところ、iso-2022-jpとなっている。

Vimのfileencodeの値が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 の設定はするもんじゃない。

参考