1.幾個路徑:html
ubuntu: /etc/default/locale 至關於 centos:/etc/sysconfig/i18nubuntu
vimrc的路徑:① ~/.vimrc ② /etc/vim/vimrcvim
2. 解決方法:centos
①添加語言支持$sudo vim /var/lib/locales/supported.d/local#
添加下面的中文字符集zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030
使其生效:$sudo dpkg-reconfigure locales
②vi ~/.vimrc(若是vi /etc/vim/vimrc的話,不知道爲何滿屏都是高亮的屏蔽字 = =!) ③
set fileencodings=utf-8,gbk set termencoding=utf-8,gbk (這裏gbk是我本身添加的,由於使用的系統是xp,xp內部使用的編碼爲gbk,termencoding這個字段又是跟終端顯示編碼有關) set encoding=prc
3.編碼的基礎知識 in case i forget this somedayui
Vim中有幾個選項會影響對多字節編碼的支持: ①encoding(enc):encoding是Vim的內部使用編碼,encoding的設置會影響Vim內部的Buffer、消息文字等。在 Unix環境下,encoding的默認設置等於locale;
Windows環境下會和當前代碼頁相同。在中文Windows環境下encoding的 默認設置是cp936(GBK)。 ②fileencodings(fenc):Vim在打開文件時會根據fileencodings選項來識別文件編碼,fileencodings能夠同時設置多個編碼,Vim會根據設置的順序來猜想所打開文件的編碼。 ③fileencoding(fencs) :Vim在保存新建文件時會根據fileencoding的設置編碼來保存。若是是打開已有文件,Vim會根據打開文件時所識別的編碼來保存,除非在保存時從新設置fileencoding。 ④termencodings(tenc):在終端環境下使用Vim時,經過termencoding項來告訴Vim終端所使用的編碼。
Vim中的編碼轉換
Vim內部使用iconv庫進行編碼轉換,若是這幾個選項所設置的編碼不一致,Vim就有可能會轉換編碼。打開已有文件時會從文件編碼轉換到encoding所設置的編碼;
保存文件時會從encoding設置的編碼轉換到fileencoding對應的編碼。常常會看到Vim提示[已轉換],這是代表Vim內部做了編碼轉換。
終端環境下使用Vim,會從termencoding設置的編碼轉換到encoding設置的編碼。
ps:能夠用|:help encoding-values|列出Vim支持的全部編碼。
4. 改變已存在文件的編碼方法:this
① 好比將GBK的格式轉換成utf-8格式: 方法:先打開文件,使用命令::set fileencoding=utf-8 ②使用iconv命令: [root@www ~]# iconv --list [root@www ~]# iconv -f 本來編碼 -t 新編碼 filename [-o newfile] 選項與參數: --list :列出 iconv 支持的語系數據 -f :from ,亦即來源之意,後接本來的編碼格式; -t :to ,亦即後來的新編碼要是什麼格式; -o file:若是要保留本來的檔案,那麼使用 -o 新檔名,能夠創建新編碼檔案。 範例一:將 /tmp/vitest/vi.big5 轉成 utf8 編碼吧! [root@www ~]# cd /tmp/vitest [root@www vitest]# iconv -f big5 -t utf8 vi.big5 -o vi.utf8 [root@www vitest]# file vi* vi.big5: ISO-8859 text, with CRLF line terminators vi.utf8: UTF-8 Unicode text, with CRLF line terminators PS:引用自《鳥哥的私房菜》~~~
5.參考資料:編碼
http://blog.chinaunix.net/uid-26808060-id-4338345.html http://www.cnblogs.com/xkfz007/archive/2011/11/17/2252019.html