ターミナルの環境によっては、vim でマルチバイト(日本語など)の文字列を含むファイルを開くと文字化けすることがあります。
今回は、vi でファイルを開いた状態でファイルエンコードの変更をする方法を紹介します。
文字コードの確認
OS 上の文字コードが utf-8 の場合、vi 上でエンコードを確認すると utf-8 が返ってきます。
入力モードで以下のコマンドを実行します。
1 2 | :set enc encoding=utf-8 |
ファイルエンコードの確認
次に、ファイルエンコードを確認します。
入力モードで以下のコマンドを実行します。
1 2 | :set fenc fileencoding=latin1 |
実際は、euc-jp の文字コードのファイルなのですが、latin1 と認識してしまっているようです。
viの文字コード設定
そこで、vi 用の設定ファイルに文字コード関連を設定します。
1 2 3 4 | (rootの場合) $ vi /root/.vimrc set encoding=utf-8 set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8 |
設定を反映します。
1 | $ source /root/.vimrc |
これで、設定した文字コードに該当するファイルならマルチバイト文字が問題なく表示されていると思います。
1 2 | :set fenc fileencoding=euc-jp |