Vim中文处理

出自Linux Wiki

在2012年1月2日 (一) 08:08由Chenxing (讨论 | 贡献)所做的修订版本

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将会在保存和读取时做二者之间的转换。

相关文档

更多与Vim有关的文档,请参阅分类 Vi/Vim编辑器

个人工具
简体繁体转换