2009-06-17 4 views
17

ほとんどの場合、 'the standard english'以外のエンコーディングを使用すると、vimは文字を認識せず、正しく表示しません。
これは、cp437コードページを使用するいくつかのasciiグラフィックスやネットから同様のファイルを開くことで最も簡単に表示されます。vimでファイルのエンコーディングを認識させるにはどうしたらいいですか?

ファイルを開くときにvimでエンコードをチェックし、正しいものを開いて開く方法はありますか?

最もポータブルなエンコーディング(ユーザーに最大の問題が最も少ないエンコーディング)として、どのようなエンコーディングを使用しますか?

+0

あなたは英語でやるべきことがたくさん持っていません直面している問題は、理由英語で使用されている句読点の多くは、エムダッシュや英語圏の一部の通貨記号など、ASCIIから抜けています。 ASCIIは本当にアメリカ英語を念頭に置いていただけで、実際には「標準」ではありません。 ;-) –

答えて

20

Vimはエンコーディングを検出する必要があります。ファイルはエンコーディングを明示的に記述しないことが多いため(明らかに例外はヘッダーにエンコーディング属性を持つXMLファイルです)、問題になります。

あなたは、このように異なるエンコーディングでファイルをリロードするVimを強制することができます。

:e ++enc=cp437 

、あなたが望むなら、あなたの.vimrcにデフォルトのエンコーディングを設定することができます。

This pageには、詳細な情報とリンクがあります。特にwrtがあります。 Unicodeの編集。 UTF-8は最も広く使用されているエンコーディングであり、おそらくデフォルトにする必要があります。

+1

世界各地の賢い人たちを見てうれしいです。このような便利な答えをありがとうございます;) –

2

vimのモデルラインを使用して、ファイルのエンコーディングを設定できます。これは、ファイルの最初の5行にある、単にvi: set fileencoding=cp437で始まるコメントです。

また、 'vi:set'の代わりに 'vim:'で始めることもできますが、後者はより多くのエディタと互換性があります。これらの接頭辞と 'fileencoding'の間、または設定したいオプションの間にスペースが必要です。しかし、fileencodingオプションはあなたの問題を解決するはずです。

ので、Pythonや.rcファイルに、あなたはファイルの先頭でこれを置くことができます。Java、C、C++、JavaScriptで

# vi: set fileencoding=cp437 

などはこれを置く:

// vi: set fileencoding=cp437 

詳細については、vimで:help modelineと入力してください。

+0

@SumnerHayesというユーザーが提案したように編集して、ファイル内の最初の5行のうちの1つでなければなりません。 –

0

ファイルをユニコードでエンコードし、ファイルにByte Order Mark(BOM)を設定することができます。これはvimで適切に処理されますが、コンパイラやプログラムによっては問題が生じることがあります。 catのような基本的なシェルコマンドでさえ、いくつかのユースケースでは間違いがあります。

それを行うには、vimの中で次のように入力します。詳細については

:set fileencoding=utf-8 
:set bomb 
:w 

、タイプ:

:help bomb 
関連する問題