Vimは テキストエディタ そしてテキストコードポイントで動作します、 ではない バイトファイルを開くとき、エディタはそれをバイトエンコーディングから内部表現(通常はUnicode)にデコードする必要があります。ファイルに保存し直すとき、または端末にその内容を表示するときは、テキストをバイトにエンコードし直す必要があります。
この理由の1つは単純です - ファイルと端末が使用している可能性があります。 違う 文字セットたとえば、ISO 8859-13またはKOI8-Rの古い文書を編集していて、それらがUTF-8端末に正しく表示されるようにしたいとします。
2つ目の理由は、やはりテキストエディタがテキストを扱うことです。例えば、 ”
バイトエンコーディング(UTF-8では3バイト、Windows-1257では1バイト、Shift-JISでは2バイトなど)に関係なく、幅は1文字、幅は1セルです。 Vimが単にそれを3バイトとして数えたが、端末がそれを1と表示した場合、垂直分割が不揃い、行の折り返しが早すぎる、タブの表示が狭すぎる、などの結果となります。
Instead of this... ...you would see this.
┌───────────────────────────┐ ┌───────────────────────────┐
│She said, "Hello." │ │She said, "Hello." │
│ │ │ │
│She said, “Hello.” │ │She said, “Hello.” │
│ │ │ │
│Ji pasakė, „Sveiki“. │ │Ji pasakė, „Sveiki“. │
└───────────────────────────┘ └───────────────────────────┘
言うまでもありません、あなたがする必要があります バックスペース 3回 単一の文字を削除します。