回答:
fileencoding設定は、現在のバッファーのエンコードを示します。
:set fileencoding
fileencoding=utf8
プレーンテキストファイルのエンコードを決定する一般的な方法は、その情報がファイル自体に保存されないため、実際にはありません-エンコードを示すいわゆるBOMを持っているUTF-8ファイルを除きます。これが、xmlおよびhtmlファイルに文字セットメタタグが含まれている理由です。
「エンコード」設定で特定のエンコードを強制できます。参照:help encoding
と:help fileencoding
編集者がこれらの設定をどのように処理するかについてのVimインチ また、vimrcにいくつかのファイルエンコーディング設定を追加して、リストされている設定に基づいてvimが検出を試みるようにすることもできます。
ファイルのエンコーディングは、ファイル内のどこにも明示的に記述されていないことに注意してください。したがって、VIMおよびその他のアプリケーションはエンコーディングを推測する必要があります。これを行う標準的な方法はchardet
、VIM内から次のように実行できるアプリケーションを使用することです。
:!chardet %
jtimbermanが提供する答えは、ディスク上のファイルと同じエンコーディングではないかもしれない現在のバッファのエンコーディングを示しています。このためchardet
、特に特定のエンコード(つまりUTF-8)を常に使用するようにVIMを構成している場合は、VIMとは異なるエンコードが表示されることがあります。
良いchardet
点は、推測に信頼スコアを与えることです。一方、\ x7F(ASCII 127)の上に多くの文字がない場合、VIMはエンコードの推測について間違っている可能性があります(そしてしばしば間違っています)。たとえばא
、PHPコードの長いファイルにシングルを追加するchardet
と、ファイルISO-8859-2
の信頼度は0.72であると考えられますが、少し長いフレーズשלום, עולם!
を追加すると、信頼スコア0.99のUTF-8が得られます。どちらの場合も、set fileencoding?
示されたUTF-8
ディスク上のファイルがUTF-8であったためではないが、VIMは内部でUTF-8を使用するように設定されているため。
chardet <file>
。それでも、良い提案。
私はそれを見つけました:https : //vim.fandom.com/wiki/Reloading_a_file_using_a_different_encoding
Vimが正しいエンコーディングを検出できなかった場合、別のエンコーディングを使用してファイルをリロードできます。
:e ++enc=<encoding>
どこにありencoding
ますかcp850, ISO-8859-1, UTF-8, ...
dotancohenによって提案されたfile yourfilename
エンコーディングまたはchardetect
(Linuxディストリビューションによって提供されるpython-chardet
かuchardet
依存する)を見つけるために使用できます。