gvim里fileencoding , fileencodings 和 encoding
fileencodings 和fileencoding
這兩個(gè)參數(shù)基本上就是為了讓vim確定下來(lái)一件事: 這個(gè)文件存儲(chǔ)在你的硬盤里時(shí)是用什么編碼的。因?yàn)橹挥兄懒诉@件事,vim才能順利得從硬盤讀一個(gè)給定的文本文件,或向硬盤里寫入文本文件泄朴。
當(dāng)vim嘗試去打開(kāi)一個(gè)文件時(shí)亿汞,如果不給它任何參數(shù)垦巴,它并不知道這個(gè)文件是啥編碼(UTF-8/16? Latin? GBK? BIG5?),此時(shí)它會(huì)去看fileencodings這個(gè)變量(實(shí)際上是一個(gè)字符編碼列表),從這個(gè)列表里挨個(gè)嘗試直到試出來(lái)最有可能的編碼,然后就把這個(gè)編碼賦給全局變量fileencoding,當(dāng)vim需要保存文件到磁盤時(shí),它就會(huì)用這個(gè)fileencoding所指定的編碼格式來(lái)存儲(chǔ)扑浸。 也就是說(shuō)fileencoding 只在寫入的時(shí)刻才會(huì)起到作用。 你可以在打開(kāi)文件以后修改 fenc的值為你想要的編碼格式燕偶,這要就會(huì)在保存時(shí)保存成相應(yīng)格式喝噪。當(dāng)然,更方便的是直接在保存時(shí)加一個(gè)enc的參數(shù)例如:w ++enc=utf-8
encoding
vim配置文件里還有一個(gè)encoding變量指么,又是干啥滴呢酝惧?encoding是vim的程序內(nèi)部使用的編碼類型榴鼎。前面提到vim猜出文件的編碼之后,如果這個(gè)編碼個(gè)內(nèi)部自己使用的不一樣晚唇,就會(huì)進(jìn)行轉(zhuǎn)化巫财,同理,在保存時(shí)又會(huì)轉(zhuǎn)化回去缺亮。這個(gè)編碼類型和用戶使用的關(guān)系不大翁涤,當(dāng)vim在讀寫文件讀寫時(shí)會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換桥言。
最后再說(shuō)一個(gè)參數(shù): ++enc 這個(gè)參數(shù)可以強(qiáng)制讓vim在文件讀寫時(shí)使用特定的編碼萌踱,例如:
:e ++enc=utf-8 normal.txt
使用utf-8編碼打開(kāi)normal.txt文件。
:w ++enc=utf-8 normal.txt
使用把normal.txt存為utf-8編碼文件号阿。
利用這兩個(gè)命令可以很方便地對(duì)文件行編碼轉(zhuǎn)換并鸵。