本文主要講解下,讓vim能正確顯示和儲存各種編碼檔案的一些常用方法。
vim編碼配置裡面有3個選項,分別是encoding 、fileencodings、fileencoding簡寫分別對應為enc、fencs、fenc。
encoding(enc):此專案配置的是vim的預設顯示編碼,如果你開啟的檔案編碼與該屬性配置的編碼不同,那麼vim會將編碼自動轉換到這種編碼然後再顯示,
如果如果這2種編碼集合完全對應那麼很有可能出現壞塊也就是沒轉換成功然後從列表(下面就講到,實際上就是fens)中搜尋下乙個編碼,也就是出現我們所說的亂碼。
驗證上述結論:用vim開啟乙個檔案,輸入":set encoding" vim 會自動把encoding的值列印出來。
fileencodings(fencs):此專案配置的是乙個編碼列表,vim在讀取檔案的時候,會根據這裡的編碼自動檢測,如果檢測失敗則嘗試下乙個,直到檢測成功為止。如果一直沒有轉換成功,則此值會為空,也就是上述encoding的列舉,你可以重新調整循序來調整優先順序。(需要在.vimrc中修改)
驗證上述結論:同上,列印fencs的值(fencs 就是 fileencodings
)fileencoding(fenc):這個東西尤其重要這個配置的是新建檔案和儲存檔案時檔案的編碼,如果它的值與encoding(enc)不一樣,那麼儲存的時候vim會自動把檔案內容由encoding(enc)的編碼轉換為fileencoding(fenc)配置編碼再儲存。而讀取檔案的時候,該選項的值會自動同步為fileencodings(fencs):配置的有效編碼。(實際上就是上面說的轉換規則)
例如:如果我們是如下配置
encoding(enc):utf-8
fileencodings(fencs):utf-8,gbk
fileencoding(fenc):gbk
那麼我們開啟乙個gbk編碼的檔案,vim會將內容轉換為utf-8格式來顯示,但是儲存的時候檔案的編碼卻依然是gbk
如果我的工作環境主要是編輯utf-8,偶爾會修改一下gbk的編碼,我們該怎麼配置呢?
首先我們可以把fileencoding留空,然後只配置fileencodings(fencs):utf-8,gbk,ucs-bom,cp936(這個需要在.vimrc中配置,不然下一次開啟不會改變,而且這個列表是開啟後不能改的,改了也沒效果)
按照上面的規則,vim就會自動把檔案儲存為gbk的編碼了
如果我編輯了乙個utf-8檔案,想把它以gbk的格式儲存,該怎麼辦呢?
在命令列模式輸入:set fenc=gbk然後儲存檔案即可,儲存之後再輸入:set fenc=utf-8就可以繼續編輯其他utf-8檔案了
vim 編碼格式設定不正確 vim字元編碼設定
vim 編碼方式的設定 和所有的流行文字編輯器一樣,vim 可以很好的編輯各種字元編碼的檔案,這當然包括ucs 2 utf 8 等流行的 unicode 編碼方式。然而不幸的是,和很多來自 linux 世界的軟體一樣,這需要你自己動手設定。encoding vim 內部使用的字元編碼方式,包括 vi...
VIM編碼設定
vim編碼設定 vim裡面的編碼主要跟三個引數有關 enc encoding fenc fileencoding 和fencs fileencodings fenc是當前檔案的編碼,也就是說,乙個在vim裡面已經正確顯示了的檔案 前提是你的系統環境跟你的enc設定匹配 你可以通過改變 fenc後再w...
vim編碼設定
於 對於fedora來說,vim的設定一般放在 etc vimrc檔案中,不過,建議不要修改它。可以修改 vimrc檔案 預設不存在,可以自己新建乙個 寫入所希望的設定。我的.vimrc檔案如下 setencoding utf 8 setfileencodings ucs bom,utf 8,cp9...