老牛博客,源自生活
让知识服务生活

导航

 

让vim自动判断中文编码

推荐“http://linux-wiki.cn/wiki/”

此页由Linux Wiki用户Chenxing于2012年1月2日 (星期一) 08:08的最后更改。 在Wang Minglong的工作基础上。

Vim有时不能像Gedit一样自动判断中文使用的编码,这给查看不同编码的文件带来了不少麻烦。

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将会在保存和读取时做二者之间的转换。
posted on 2012-05-17 20:59  GeekyNiu  阅读(343)  评论(0编辑  收藏  举报