web-dev-qa-db-ja.com

VIMでファイルの文字エンコーディングを設定する方法

:set fileencoding=utf-8を使用していますが、ファイルは正しく保存されますが、次に開いたときに文字化けが発生し、:set fileencoding?でオプションが設定されていないと表示されます。

ドキュメントから、encodingオプションに触れてはならないことを理解しています。

VIMでファイルのエンコードを指定する正しい方法は何ですか?

39
guillermooo

使用する

set fileencodings=utf-8

(末尾にsがあります)異なるエンコードのリストを含めることができます。 Vimは、リストされているエンコーディングを左から右に試して、動作するまでfileencodingをそのエンコーディングに設定します。何も機能しない場合、fileencodingは空の文字列に設定され、デフォルトの動作になります。

また、vimrcにそれを追加して、常にそれを実行しているわけではないこともおそらく意味があります。

41
Niki Yoshiuchi

fileencodingsを、ファイルを開くときにvimが試行するさまざまなエンコーディングに設定する必要があります。次に例を示します。

set fileencodings=ucs-bom,utf-8,latin1

:help fileencodingsから:

これは、既存のファイルの編集を開始するときに考慮される文字エンコーディングのリストです。ファイルが読み込まれると、Vimは最初に述べた文字エンコーディングを使用しようとします。エラーが検出された場合、リスト内の次のエラーが試行されます。動作するエンコードが見つかると、fileencodingが設定されます。

Vimを起動するたびに手動で入力する必要がないように、これらの設定を.vimrcファイルに配置するのが最適です。

22
sth

そのディレクティブをファイルのコメントに入れることができます:

# vim: set fileencoding=<encoding name> :
11
RichieHindle

Vimを開いたときにファイルが正しく表示されない場合は、:set encoding = utf8でエンコードを指定します

9
dmitri
  • 開いた:

    vim ~/.vimrc
  • 追加:

    set fileencodings=utf-8
    set encoding=utf-8
    
  • 次を入力して保存して閉じます。

    :wq
3
Marcos

VIMエンコーディングについての多くのスレッドを読みました。最も重要なトリックは、ファイルを開く前に、最初にVIM= :++ enc = filename.extの編集エンコードとファイルエンコードに関するほとんどの質問を処理できます。

キーポイントは次のとおりです。

  1. 文字セットを正しく表示する必要があります!正しく表示しないと、他の操作により回復不能な問題が発生する可能性があります。
  2. ファイルが正しく表示された後、必要に応じて、「:set fileencoding = UTF-8」を実行できます
    :write "to let VIMは常に正しく表示できます。

私は英語の母国語ユーザーではないので、自分のやり方を検証できると思います。

2
Steven