1.几个路径:
ubuntu: /etc/default/locale 相当于 centos:/etc/sysconfig/i18n
vimrc的路径:① ~/.vimrc ② /etc/vim/vimrc
2. 解决方法:
①添加语言支持$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 someday
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. 改变已存在文件的编码方法:
① 比如将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