VIMで名前のないバッファのエンコーディングを変更するには?

VIMで名前のないバッファのエンコーディングを変更するには?

可能ですか?

私は名前付きバッファ(ファイル)に対してこれを行う方法を知っています。もう一度開く必要があります

++enc=<encoding>オプション。ただし、名前のないバッファは再度開くことはできません。

実行しましたが、:set encoding=utf-8VIMに表示されているテキストはまだ読み取れません。バッファをファイルに保存した後にのみ開いて再度開くと、:e ++enc=utf-8正しく読み取ることができます。しかし、私はバグを見つけました[ILLEGAL BYTE in line 37]。しかし、私はそれに満足しています。最も重要なことは、内容を読むことができるということです。

エラーなしで実行しましたが、:set encoding=utf-8何も起こらないようです。

仮想マシン 7.4

答え1

再度開く必要はありません。コマンドモードでは、必要に応じてエンコードを設定できます。

:set encoding=whatever

例えば

:set encoding=utf-8

さて、:help encoding-namesサポートされているvimエンコーディングのリストを入力してください。

答え2

この'encoding'オプションはVimのテキスト内部表現に関するものです。みんなバッファー。 Vimが起動した後は、この値を変更しないでください。バッファエンコーディングに(少なくとも直接的には)影響しません!

あなたが探している:help 'fileencoding'オプション:

:setlocal fenc=...

要約すると、新しいバッファに入力して表示できる文字の種類は、このオプションによって制御されます'encoding'。その「最高の」値はですutf-8。なぜならそれだけが示すからです。どの文字(Unicode内)。これで、名前のないバッファを作成して別のエンコーディングで保存したい場合は、最初の書き込みと'fileencoding'後続の書き込み(例:)でそれを変更できます。ucs-2le:w ++enc=...また動作しますが、特定の書き込み専用です!)

対照的に、発覚このオプションを設定したい開いているファイルの数'fileencodings'

関連情報