vim裡面的字元編碼主要跟三個引數有關:enc(encoding), fenc(fileencoding)和fencs(fileencodings)
fenc是當前檔案(開啟已有檔案以及新建檔案)的編碼,你可以通過改變 fenc後再w來將此檔案存成不同的編碼。比如說,我:set fenc=utf-8然後:w就把檔案存成utf-8的了,:set fenc=gbk再:w就把檔案存成gbk的了。
這個值對於開啟檔案的時候是否能夠正確地解碼沒有任何關係。
fencs就是在開啟已有檔案的時候進行解碼的猜測列表,這個值是在vimrc中寫死的,檔案編碼沒有百分百正確的判斷方法,所以vim只能猜測檔案編碼。比如我的vimrc裡面這個的設定是
set fileencodings=utf-8,gbk
所以我的vim每開啟乙個檔案,嘗試fencs列表中的解碼格式進行解碼,如果中間的某次解碼從頭到尾都沒有出錯,那麼 vim就認為這個檔案是這個編碼的,不會再進行後面的嘗試了。
這個時候,fenc的值就會被設為vim最後採用的編碼值,vim下進入命令列模式用set fenc來檢視當前已有檔案的編碼格式。
當然這個也是有可能出錯的,比如你的檔案是gbk編碼的,但是實際上只有一兩個字元是中文,那麼有可能他們正好也能被utf-8解碼,那麼這個檔案就會被誤認為是utf-8的導致錯誤解碼。
enc,其作用是vim的顯示編碼格式。不管最後的檔案是什麼編碼的,vim都會將其轉換為當前系統編碼來進行處理,這樣才能在當前系統裡面正確地顯示出 來,enc就是幹這個的。
這3個引數fencs fenc enc都可以在vim的命令列模式下set fencs/fenc/enc檢視。
從開啟乙個已有檔案的過程來看這3個引數的區別,首先vim或利用fencs列表去匹配解碼檔案,正確解碼後就設定fenc為當前解碼格式,解碼完成呢,接著會做乙個轉碼,將檔案轉為enc所指的編碼格式來顯示出來。
這就是這3個配置引數的作用!
將gbk格式檔案用vim開啟,預設編碼格式utf8,開啟時在vim下部會顯示converted,表示編碼格式已轉換。
開啟建立新檔案,當然預設的編輯模式是在使用enc指定的編碼格式,一般是utf8的,儲存檔案時我們可以使用fenc指定當前檔案編碼格式,如set fenc=gbk。就可以實現windows下的正確顯示了。
顯示編碼格式是enc,當前檔案編碼格式是fenc,vim支援的編碼格式是fenc,這中間牽扯到檔案格式到顯示格式的轉換,這樣就去分開了。
細述vim編碼格式配置
在vim中檢視檔案編碼 set fileencoding即可顯示檔案編碼格式,如果你只是想檢視其它編碼格式的檔案或者想解決 用vim檢視檔案亂碼的問題,那麼在 vimrc 檔案中新增以下內容 set encoding utf 8 fileencodings utf 8這樣,就可以讓vim自動識別檔案...
vim中編碼方式的設定
以前在設定vi的編碼方式設定的時候,是直接從網上找的相關的方法,主要是在 etc vimrc檔案中新增如下的內容 set fileencodings utf 8,latin 1,gb2312,gbk,gb18030 set termencoding utf 8 set encoding prc 這樣...
vim中編碼方式的設定
以前在設定vi的編碼方式設定的時候,是直接從網上找的相關的方法,主要是在 etc vimrc檔案中新增如下的內容 set fileencodings utf 8,latin 1,gb2312,gbk,gb18030 set termencoding utf 8 set encoding prc 這樣...