
スポンサーリンク
Vimで日本語のファイルを開いたときに「文字が読めない」「記号ばかりになる」といった 文字化け に悩まされたことはありませんか?特にWindowsやLinux、macOSなど異なる環境で作業する場合、この問題はとても厄介です。
本記事では、 Vim 文字化け というキーワードに焦点をあて、初心者でも分かりやすいように原因とその解決策を徹底的に解説していきます。設定ファイルの調整からコマンドの活用方法まで、今日からすぐに使える知識をまとめました。
正しくない文字コードによる文字化け
文字化けとは、正しい文字コードで表示されていないことで、記号や意味不明な文字列になってしまう現象です。例えば、本来「こんにちは」と表示されるはずの文字列が「ÓÂáÓÉ」のようになるケースがあります。
Vimで起きやすい文字化けの特徴
- 日本語が「??」や記号で表示される
- 改行位置が崩れる
- 特定の行だけ表示が乱れる
こうした文字化けのほとんどは、エンコーディングの不一致が原因です。
なぜvimで文字化けが起こるのか?
vimの文字化けは、次のような原因で発生します。
エンコーディングの不一致
- ファイルのエンコーディングが「UTF-8」なのに、Vimが「Shift_JIS」で解釈している場合
- 編集環境(ターミナルやOS)とVimの設定が違う
UTF-8とShift_JISの混在
- Windowsで作成されたファイルがShift_JISになっていることが多い
- macOSやLinuxではUTF-8が標準
OS間でのファイル移動
- ファイルをUSBメモリやクラウドで移動したときに文字コードが変わってしまうことも。
設定ファイルの干渉
.vimrc
などで異なる文字コードが設定されていると、新しいファイルでも誤って読み込まれます。
ターミナルとVimの設定不整合
ターミナルの文字コード設定がVimと合っていないと、見た目だけでなく内部的にも誤った処理がされます。
vimエンコーディングの設定手順
vimで開いたファイルが文字化けした場合は、:set encoding=[文字コード]
を指定して開きなおします。恒久的に対応する場合は、vimの設定ファイルを編集し、デフォルトの文字コードを変更する必要があります。
確認した環境
Debian 12.5
以下UTF-8のファイルを例に説明します。
$ cat sample.txtvim文字コードの確認テストです。
vimでファイルを開きます。
vim sample.txt
以下のように文字化けして表示されることを確認しました。
setc encで編集する
まず現在の文字コードを確認します。
vimのコマンドモードで、以下コマンドを実行してください。
:set enc?
:set enc?
実行前キャプチャ
:set enc?
実行後キャプチャ
encoding=[現在の文字コード]
が表示されることを確認してください。
キャプチャではlatin1が設定されていることを確認できました。
開いているファイルの文字コードを変更します。
vimのコマンドモードで:set encoding=[文字コード]
を指定します。
以下コマンドはUTF-8に変更する例となります。
:set encoding=utf-8
:set encoding=utf-8
実行前
:set encoding=utf-8
実行後
UTF-8で書かれたファイルであれば、文字化けが直ります。
文字化けが直らない場合は、他の文字コードも試してみてください。
vimrcファイル編集(恒久的な対処)
vimで開いたファイルのデフォルト文字コードを変更する場合は、以下ファイルを編集します。
vim /etc/vim/vimrc
vimには複数のエンコーディング関連設定があります。
設定項目 | 意味 |
---|---|
encoding | 内部的に使う文字コード(通常はUTF-8) |
fileencoding | ファイルの保存時の文字コード |
fileencodings | 既存ファイルを開くときに試す文字コードの優先順位リスト |
termencoding | ターミナルとの通信時の文字コード |
fileformats | ファイルの改行コードの読み書きに関する設定(unix:LF、dos:CRLF) |
最も安定する方法は、vimをUTF-8前提に設定することです。
例えばvimrcの末尾に以下5行を追記します。
set encoding=utf-8set fileencoding=utf-8set fileencodings=utf-8,cp932,euc-jpset termencoding=utf-8set fileformats=unix,dos
※他の文字コードを使用する場合は、utf-8
を置き換えてください。
vimrcファイル編集後は、文字化けしていたファイルを再度開いてください。
vim sample.txt
文字化けが発生していないことを確認します。
vimのコマンドモードで以下を実行し、文字コードが変わっていることも確認してください。
:set enc?
:set enc?
実行前
:set enc?
実行後
encoding=[設定した文字コード]
が表示されればOKです。
Tera Termでのエンコーディング設定方法
Tera TermはWindowsユーザーに人気の高いターミナルソフトですが、デフォルトのエンコーディングがUTF-8以外に設定されている場合があり、Vimの文字化けの原因になることがあります。
文字コード設定手順
- Tera Termを起動
- 上部メニューから 「設定」→「端末」 をクリック
- 「受信:文字コード」で 「UTF-8」 を選択
- 「送信:文字コード」で 「UTF-8」 を選択
- OKを押して保存
TERATERM.INIに設定を保存する
- 上部メニューから 「設定」→「設定の保存」
TERATERM.INI
として保存し、次回以降も自動でUTF-8が使われるようにします
この設定によって、Vimやサーバー上で編集した日本語ファイルがTera Term上で正しく表示されるようになります。
また、Tera Termのフォント設定も日本語対応フォント(例:MS Gothic、Meiryo)を使うことで、文字化けのリスクをさらに軽減できます。
まとめ:Vimの文字化けを完全に防ぐには
.vimrc
でUTF-8を明示的に設定するfileencodings
を複数定義して柔軟に対応できるようにする- ターミナル側もUTF-8に設定する
- OS間のファイル移動後は一度エンコーディングを確認する
- UTF-8で保存するよう他のエディタ(VSCodeなど)も設定する
Vimでの文字化けは、設定ファイルのミス・ターミナルとの不整合・エンコーディングの知識不足が原因の大半です。 これらを意識すれば、ほとんどの文字化け問題は回避または修復できます。
Linuxユーザにお勧めの本
![]() |
新品価格
|

![]() |
ゼロからわかる
新品価格
|

![]() |
エンジニア1年生のための
新品価格
|

以上で本記事の解説を終わります。
よいITライフを!