Vim中文处理

出自Linux Wiki

在2010年5月31日 (一) 14:26由Wmpotato (讨论 | 贡献)所做的修订版本

DebianFedora发行版中,vim不能像gedit一样自动判断中文使用的编码,这给查看不同编码的文件带来了不少麻烦。偶尔发现gentoo把这个问题处理的很好,把它的配置文档拿来修改一下,效果不错。

Note.gif
注意:
按照vim文档的说法,本文方法对vim 6.0以前的版本无效。

实现方法

编辑~/.vimrc,(最好在其末尾)加入:

set fileencoding=gb18030
set fileencodings=ucs-bom,gb18030,utf-8,default

红色的gb18030表示对新创建的文件使用gb18030编码,如果你需要新文件默认为utf-8,把它改成utf-8就可以了。

Hint.gif
提示:
上面的方法不会对已有文件的编码产生影响。

原理简介

vim有自动判断编码的功能,这里主要简单介绍几个变量:

encoding
屏幕显示的编码,如使用utf-8做locale的系统,encoding就应是utf-8以方便显示
fileencodings
供vi尝试的编码列表,vi会逐个尝试每一项,如果没有发生错误,就设置当前的fileencoding为与该项相同的值。如果均失败,fileencoding将为空。
fileencoding
正在被编辑的文件的编码,它也决定新文件的编码。如果为空,表示与encoding相同。如果与encoding不同,vi将会在保存和读取时做二者之间的转换。
个人工具
简体繁体转换