2018-08-10 vim 用指定編碼保存文件

本文主要講解下,讓Vim能正確顯示和保存各種編碼文件的一些常用方法。

Vim編碼配置里面有3個(gè)選項(xiàng),分別是encoding 、fileencodings、fileencoding 簡(jiǎn)寫分別對(duì)應(yīng)為enc、fencs、fenc。

encoding(enc): 此項(xiàng)目配置的是vim的默認(rèn)顯示編碼,如果你打開的文件編碼與該屬性配置的編碼不同,那么Vim會(huì)將編碼自動(dòng)轉(zhuǎn)換到這種編碼然后再顯示,

如果如果這2種編碼集合完全對(duì)應(yīng)那么很有可能出現(xiàn)壞塊也就是沒轉(zhuǎn)換成功然后從列表(下面就講到,實(shí)際上就是fens)中搜尋下一個(gè)編碼,也就是出現(xiàn)我們所說的亂碼。

驗(yàn)證上述結(jié)論:用vim打開一個(gè)文件,輸入":set encoding" vim 會(huì)自動(dòng)把encoding的值打印出來。

fileencodings(fencs): 此項(xiàng)目配置的是一個(gè)編碼列表,Vim在讀取文件的時(shí)候,會(huì)根據(jù)這里的編碼自動(dòng)檢測(cè),如果檢測(cè)失敗則嘗試下一個(gè),直到檢測(cè)成功為止。如果一直沒有轉(zhuǎn)換成功,則此值會(huì)為空,也就是上述encoding的枚舉,你可以重新調(diào)整循序來調(diào)整優(yōu)先級(jí)。(需要在.vimrc中修改)

驗(yàn)證上述結(jié)論:同上,打印fencs的值(fencs 就是 fileencodings)

fileencoding(fenc):這個(gè)東西尤其重要這個(gè)配置的是新建文件和保存文件時(shí)文件的編碼,如果它的值與encoding(enc)不一樣,那么保存的時(shí)候Vim會(huì)自動(dòng)把文件內(nèi)容由encoding(enc)的編碼轉(zhuǎn)換為fileencoding(fenc)配置編碼再保存。而讀取文件的時(shí)候,該選項(xiàng)的值會(huì)自動(dòng)同步為fileencodings(fencs):配置的有效編碼。(實(shí)際上就是上面說的轉(zhuǎn)換規(guī)則)

例如:

如果我們是如下配置

encoding(enc):utf-8

fileencodings(fencs):utf-8,gbk

fileencoding(fenc):gbk

那么我們打開一個(gè)gbk編碼的文件,Vim會(huì)將內(nèi)容轉(zhuǎn)換為utf-8格式來顯示,但是保存的時(shí)候文件的編碼卻依然是gbk

如果我的工作環(huán)境主要是編輯utf-8,偶爾會(huì)修改一下gbk的編碼,我們?cè)撛趺磁渲媚兀?/p>

首先我們可以把fileencoding留空,然后只配置fileencodings(fencs):utf-8,gbk,ucs-bom,cp936(這個(gè)需要在.vimrc中配置,不然下一次打開不會(huì)改變,而且這個(gè)列表是打開后不能改的,改了也沒效果)

按照上面的規(guī)則,Vim就會(huì)自動(dòng)把文件保存為gbk的編碼了

如果我編輯了一個(gè)utf-8文件,想把它以gbk的格式保存,該怎么辦呢?

在命令行模式輸入 :set fenc=gbk 然后保存文件即可,保存之后再輸入:set fenc=utf-8就可以繼續(xù)編輯其他utf-8文件了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容