character encoding

そういやまとめようと思っていながら今になってまとめる series そのに。 character encoding 関係の設定のハナシ。 :help 'fileencoding':help 'fileencodings' をもとにして書いてるけどもう少しわかりやすく書いてくれていいのにと思った。まず新規 buffer を開くとき ( 「新規」 ) と既存 file を読み込むとき ( 「読込」 ) で場合分けね。

  • 「新規」
    • global な 'fileencoding' が設定されていればその値を、設定されていなければ 'encoding' の値を使う。
  • 「読込」
    • 'fileencodings' が設定されていればその値と file の内容によって決定される。この際 encoding を決定できないと'encoding' の値を使う。
    • 'fileencodings' が設定されていない場合 'encoding' の値を使う。

うむわかりやすい。 'filencodings' の設定は使う自然言語に関連した know-how ( 日本語の場合しか知らないけど bad know-how の範疇に入ると思う ) が必要だったりするけど目的に応じて書くべき行がきちんと分かれているというのは素晴らしい。

  • vim 内部の encoding を変更したい
    • set encoding=yourpreference
  • 新規で開く buffer の encoding を指定したい
    • setglobal fileencoding=anotherpreference
  • 既存 file が化けないように読み込みをしたい
    • set fileencodings=requireditemsinyourcountry

改行文字の設定に関しては 1 行で「新規」と「読込」の両方を指定するわけなので ( http://d.hatena.ne.jp/janus_wel/ ) わかりやすさがないっていうかこれどっちかに統一すべきだよな。個人的には setglobal fileformat=unix とか .vimrc に書いておくと新規 buffer の 'fileformat' が "unix" になってくれるのがいいな。