27

私はあらゆる種類のファイルを Vim で編集します (ほとんどの Vim ユーザーがそうしているように)。私が持っている 1 つのバグ ベアは、奇妙なエンコーディングのファイルに遭遇したときに Vim が行うことです。ほとんどのエディター (最近) は、ファイル エンコーディングの検出に優れています。ただし、Vim は通常そうではありません。たとえば、次のように入力する必要があります。

:e ++enc=utf-16le

ファイルを UTF-16 で再読み込みするには (そうしないと、大量の @ 記号が表示されます)

私はあちこち検索しておりset_utf8.vim、特定のファイル エンコーディングを検出できるようなスクリプトを見てきました。しかし、より一般的な解決策はありますか?いつもと違うファイルを開くたびに、ファイルのエンコーディングを手動で調べたり、ヘルプを参照したりする必要があることに少しうんざりしています。

4

3 に答える 3

18

エンコーディング名を追加すると、'fileencodings'うまくいくはずです:

:set fencs=ucs-bom,utf-16le,utf-8,default,latin1

または、 AutoFencfencviewなどのプラグインがあります。

于 2012-10-19T09:27:22.417 に答える
3

バイトオーダーマークはありますか? Vim はこれを検出し、適切に動作するはずです。ドキュメントから- セクション 45.4 :

その 16 ビット Unicode ファイルの編集を開始し、BOM がある場合、Vim はこれを検出し、ファイルを読み取るときにファイルを utf-8 に変換します。'fileencoding' オプション (末尾の s なし) は、検出された値に設定されます。この場合は「utf-16le」です。つまり、Unicode、16 ビット、リトル エンディアンです。このファイル形式は、MS-Windows で一般的です (レジストリ ファイルなど)。

于 2012-10-19T08:42:47.527 に答える