以前在設定vi的編碼方式設定的時候, 是直接從網上找的相關的方法, 主要是在/etc/vimrc檔案中添加如下的內容:
set fileencodings=utf-8,latin-1, gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc
這樣做可以使vi正確的顯示檔案內容是中的檔案.
但是存在一個問題,就是如果要在vi中顯示中文檔案名稱的時候就會亂碼.
之前我在網上搜尋相關的問題, 幾乎沒有人提出這個問題, 然後我就容忍了一段時間,但是很不爽.
今天下決心要解決這個問題.
在網上找了很多材料之後,終於解決了這個問題.
這個問題主要是涉及到了vim中的編碼方式. 與vi編碼相關的有幾個選項:
encoding、fileencoding、fileencodings、termencoding,它們的意義如下:
* encoding: Vim 內部使用的字元編碼方式,包括 Vim 的 buffer (緩衝區)、菜單文本、訊息文本等;
* fileencoding: Vim 中當前編輯的檔案的字元編碼方式,Vim 儲存檔案時也會將檔案儲存為這種字元編碼方式 (不管是否新檔案都如此);
* fileencodings: Vim 啟動時會按照它所列出的字元編碼方式逐一探測即將開啟的檔案的字元編碼方式,並且將 fileencoding 設定為最終探測到的字元編碼方式。因此最好將 Unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最後面;()
注意順序是不能錯的。ucs-bom必須要設定為第一個,utf-8必須是第二個,latin1必須是最後一個。為什麼這樣設定可以看VIM文檔:
:help fencs
* termencoding: Vim 所工作的終端 (或者 Windows 的 Console 視窗) 的字元編碼方式。
由於
Unicode 能夠包含幾乎所有的語言的字元,而且 Unicode 的 UTF-8 編碼方式又是非常具有性價比的編碼方式 (空間消耗比
UCS-2 小),因此建議 encoding 的值設定為 utf-8。這麼做的另一個理由是 encoding 設定為 utf-8 時,Vim
自動探測檔案的編碼方式會更準確 (或許這個理由才是主要的 ;)。我們在中文 Windows
裡編輯的檔案,為了兼顧與其他軟體的相容性,檔案編碼還是設定為
GB2312/GBK 比較合適,因此 fileencoding 建議設定為 chinese (chinese 是個別名,在 Unix 裡表示
gb2312,在 Windows 裡表示 cp936,也就是 GBK 的字碼頁)。可以查看vim文檔:
:help encoding-names
所以, 這樣設定vimrc檔案, 就會解決上面的問題:
set fileencodings=utf-8,chinese,latin-1
set termencoding=utf-8
set encoding=utf-8
參考網頁:http://zengrong.net/post/1023.htm
http://www.guizhu.net/knowledge/post/104.html