Mac OS X Maverics から Terminal.app (ターミナル) アプリで FreeBSD に接続して、 FreeBSD 上の vim でテキストファイルを編集しようとしたら文字化けして表示された。

set, export, env などで FreeBSD の環境を調べてみると ja_JP.UTF-8 な状況。


LANG=ja_JP.UTF-8

~/.vimrc ファイルが存在していなかったので、新しく作った。中身は


set encoding=utf-8

の一行のみ。

FreeBSD からログアウトして、ログインしなおして、 vim でテキストファイルを開いたら文字化け解消された\(^o^)/

.vimrc には fileencoding や fileencodings という設定項目もあるみたいだけど、よくわからないので今回は設定しない。

Vim のドキュメント (翻訳) による encoding の解説を引用しておく。

Vim内部で使われる文字エンコーディングを設定する。そのエンコーディングはバッファやレジスタ内のテキスト、expression 内の文字列、ファイル viminfo 内のテキスト等に適用される。つまり、このオプションはVimの通常扱う文字の種類を設定する。指定できる値については |encoding-names| を参照。

NOTE: このオプションの値を変更しても、Vim内部の既存のテキストのエンコーディングは変化しないので注意。非ASCII文字がおかしくなる恐れもある。既定の値から変更しないか、Vimの起動時に限って設定すること。|multibyte|を参照。メニューを再読み込みするには|:menutrans|を参照。

(中略)

編集するファイルの文字エンコーディングはオプション 'encoding' と異なってもよい。そちらは 'fileencoding' で設定される。エンコーディングの変換は関数 iconv() または 'charconvert' で指定された式による。

(中略)

普通、'encoding' はユーザーのカレントロケールと同じである。Vimがユーザーの環境設定を認識したならば、それが既定値になる。'encoding' の値がカレントロケールに設定されていなければ、入力されたテキストと表示されるテキストを変換するために、'termencoding' が設定されていなければならない。|encoding-table| を参照。

Vim documentation: options

tags: vim

Posted by NI-Lab. (@nilab)