VimのデフォルトのエンコーディングをUTF-8に設定するには?

VimのデフォルトのエンコーディングをUTF-8に設定するには?

翻訳された文字列を提供してオープンソースプロジェクトに貢献したいと思います。要件の1つは、貢献者がエンコードとしてUTF-8を使用する必要があることです。購入注文書

私はLinuxでVim 7.3を使用しています。 POファイルを正しい方法で編集して保存できるように、VimのエンコーディングがUTF-8に設定されていることを確認するにはどうすればよいですか?

答え1

Vimは、既存のファイルを読み取るときにファイルエンコーディングを検出しようとします。ファイルを作成するとき、Vimは検出したファイルエンコーディングを使用します(特に指定しない限り)。したがって、UTF-8で検出されたファイルはUTF-8で記録され、Latin-1で検出されたファイルはLatin-1で記録される式です。

デフォルトでは、検出プロセスはおおよそのものです。 Vim で開かれたすべてのファイルは、一番上で Unicode バイト順表示を検出しない限り、Latin-1 と見なされます。バイトオーダーマークを持たないUTF-8ファイルは、マルチバイト文字が個々の文字ではなく一連の文字としてバッファに表示されるため、編集するのは困難です。

仮説として、VimはデフォルトでLatin-1を使用してバッファのテキストを表します。だからUTF-8ファイルそしてバイト順の表示は、Latin-1へのダウンコンバートによって壊れます。

解決策は、内部的にUTF-8を使用するようにVimを設定することです。実際、これは Vim ドキュメントで推奨されるものであり、デフォルトで設定されていない唯一の理由は、Vim をデフォルトで Latin-1 エディタとして実行したいユーザー間で大きな混乱を招かないためです。

にVimを.vimrc追加しset encoding=utf-8て再起動します。

または、LANGUTF-8がデフォルトの文字エンコーディングであることを示すように環境変数を設定します。これは、Vimだけでなく、LANGテキスト表現方法を決定するすべてのソフトウェアにも影響します。たとえば、テキストがen米国で使用されている英語()で表示され、USUTF-8(utf-8)でエンコードされる必要があることを示すには、を設定しますLANG=en_US.utf-8

VimはUTF-8を使用してバッファ内のテキストを表します。また、ファイル内のUTF-8エンコーディングをより確実に検出します。バイトオーダーマークを見つけることに加えて、Latin-1に戻る前にバイトオーダーマークがないUTF-8も確認してください。したがって、UTF-8でエンコードされたファイルは破損しなくなり、UTF-8文字は編集セッション中に正しく表示されるはずです。

Vimがファイルエンコーディングを検出する方法の詳細については、以下を参照してください。fileencodingsVimドキュメントのオプション

Vim内部で使用されるエンコード設定の詳細については、以下を参照してください。encoding オプション

ファイルをディスクに書き換えるときに使用されるエンコードをオーバーライドする必要がある場合は、次を参照してください。fileencoding オプション

答え2

~によるとvim ドキュメントvimはファイルエンコーディングを自動的に検出しようとするので、編集中の場合既存ファイル行動をよくする必要があります。

必要に応じて、いつでも強制的にエンコードできます:set fileencodings=utf-8。文書を見つけることができますここ

関連情報