2017-06-01 71 views
0

我一直試圖通過在$ HOME寫/ .vimrc文件下面幾行更改VIM的默認編碼爲UTF-8不工作

set fileencodings=utf-8 
set fileencoding=utf-8 

我明白改變VIM的默認編碼第一行使vim嘗試讀取utf-8編碼的文件,第二行使vim保存文件始終使用utf-8編碼。但是,當我寫了一個名爲example.txt的文件,並寫入無特殊字符,我保存它來驗證

file -i example.txt 

輸出:

example.txt: text/plain; charset=us-ascii 

如果我寫了一篇關於將example.txt話,那就再特殊字符正確顯示

example.txt: text/plain; charset=utf-8 

但是,即使文件沒有特殊字符,我總是希望編碼是utf-8。爲什麼它不起作用?

回答

3

file查看文件的內容以確定其編碼。如果它只能找到ASCII字符,它只能得出該文件是ASCII的結論。

ASCII是UTF-8的一個子集(許多其他編碼的基礎),任何程序根本不可能知道123abc是否是ASCII以外的任何東西。

當然,如果您將UTF-8字符添加到該文件,file會發現它們並採取相應措施。

因此......在「問題」的Vim一側。

fileencodings是Vim在讀取文件時考慮的編碼列表。

fileencoding是Vim在編寫特定文件時使用的編碼。

這兩個選項的默認值取決於啓動期間設置的值encoding

「理想」encodingutf-8。有了這個,你可以得到一個合理的清單fileencodingsucs-bom,utf-8,default,latin1,並且一個合理的值fileencodingutf-8幾乎保證順暢的體驗,只要你留在UTF-8範圍內。

參見:

:help 'encoding' 
:help 'fileencodings' 
:help 'fileencoding'