2009-07-23 83 views
37

我正在使用:set fileencoding=utf-8並且文件保存正確,但下次打開它時,出現亂碼,:set fileencoding?表示該選項未設置。如何在VIM中設置文件的字符編碼

從文檔我明白,我不應該觸摸encoding選項。

在VIM中指定文件編碼的正確方法是什麼?

回答

39

使用

set fileencodings=utf-8 

(在末端的一個或多個)可以包含不同的編碼列表。 Vim會嘗試從左到右列出的編碼,直到一個有效,它會將fileencoding設置爲該編碼。如果沒有任何工作,則fileencoding被設置爲一個空字符串,這將導致默認行爲。

此外,它可能會有意義的添加到您的vimrc所以你不會經常這樣做。

10

你可以把指令轉換爲註釋文件中:

# vim: set fileencoding=<encoding name> : 
+0

尼斯,這類似於 「 - * - 」 -syntax? – 2011-06-20 14:18:05

+0

@Jonas:恐怕我對此一無所知。 – RichieHindle 2011-06-20 15:55:20

20

您應該設置fileencodings不同的編碼打開文件時VIM應該嘗試,例如:

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

:help fileencodings

這是一個字符編碼列表 consi當開始編輯 現有的文件時就開始了。當讀取一個文件時,Vim會嘗試使用第一個提到的字符編碼 。如果檢測到錯誤,則嘗試列表中的下一個 。當發現編碼正確時,將對其設置爲 fileencoding

你最好把這些設置放在你的.vimrc文件中,這樣你不必每次手動輸入它們,每次啓動vim。

9

如果Vim打開時與 指定編碼不正確顯示您的文件:集編碼= UTF8

2

我讀到VIM編碼的多線程。我發現最重要的技巧是: 在打開文件之前,應先打開VIM,然後使用以下命令: edit ++ enc = filename.ext 它可以處理大多數關於編碼和文件編碼的問題。

的關鍵點包括:

  1. 必須正確顯示的字符集!沒有正確顯示,任何其他操作可能會導致無法恢復的問題。
  2. 文件顯示正確後,如果需要的話,你可以 「:一套fileencoding = UTF-8」
    :寫」 讓VIM總是可以正確顯示。

因爲我不是英語母語的用戶,我想我的方式是可以驗證的。

3

測試:

VIM的〜/ .vimrc

添加:

組fileencodings = UTF-8

集編碼= UTF-8

節省並關閉。

註銷和登錄

相關問題