让vim自动判断中文编码
推荐“http://linux-wiki.cn/wiki/”
此页由Linux Wiki用户Chenxing于2012年1月2日 (星期一) 08:08的最后更改。 在Wang Minglong的工作基础上。
Vim有时不能像Gedit一样自动判断中文使用的编码,这给查看不同编码的文件带来了不少麻烦。
实现方法
编辑~/.vimrc,(最好在其末尾)加入:
set fileencoding=gb18030 set fileencodings=ucs-bom,gb18030,utf-8,default
其中gb18030表示对新创建的文件使用gb18030编码,如果你需要新文件默认为utf-8,把它改成utf-8就可以了。
原理简介
Vim有自动判断编码的功能,这里主要简单介绍几个变量:
- encoding
- 屏幕显示的编码,如使用utf-8做locale的系统,encoding就应是utf-8以方便显示
- fileencodings
- 供vi尝试的编码列表,vi会逐个尝试每一项,如果没有发生错误,就设置当前的fileencoding为与该项相同的值。如果均失败,fileencoding将为空。
- fileencoding
- 正在被编辑的文件的编码,它也决定新文件的编码。如果为空,表示与encoding相同。如果与encoding不同,vi将会在保存和读取时做二者之间的转换。