本站原创文章,转载请注明: 转载自zrong's Blog,原文 VIM中与编码有关的选项,欢迎使用文章源码进行转载。
本站转载文章会标明[转],转载请注明原始作者文章地址。
encoding
可简写为enc。功能是设置VIM的内码,即默认以何种编码工作。这个是最重要的编码设置了,如果设置不好,可能会导致VIM的界面语言和提示语言乱码。Windows下面的gVIM安装中文文档后乱码的情况就是因为这个设置不当造成的。
这里说一下Windows下面gVIM安装中文文档后乱码的情况。
上面的VIM的中文文档有两个版本:vimcdoc-1.7.0-setup.exe和vimcdoc-1.7.0-setup-unicode.exe。但这两个版本的编码都是utf-8的,不知道是不是作者的失误。安装程序将文档安装在$VIM/vimfiles/doc下,同时在$VIM/vimfiles/plugin/下面安装了一个插件vimcdoc.vim,并在该插件中设置了encoding=utf-8,这导致gVIM的界面和提示文字乱码。因为在Windows下面,界面和提示文字编码是cp936。
解决的方法,将set encoding=utf-8注释,或者改为set encoding=chinese。
如果已经在_vimrc中设置过secoding=utf-8,则也要将其注释掉才行。
这样设置的gVim界面不会有问题,但默认保存的文件编码就变成了cp936(即GB2312),如果你和我一样偏爱utf-8,就还要设置fileencoding=utf-8。
fileencodings
可简写为fencs。功能是设置一个列表,VIM打开文本文件的时候根据这个列表的顺序来检测编码。我的设置是这样的:
set fileencodings=ucs-bom,utf-8,chinese,latin1
注意顺序是不能错的。ucs-bom必须要设置为第一个,utf-8必须是第二个,latin1必须是最后一个。为什么这样设置可以看VIM文档:
:help fencs
另外,看到网上的某些教程把gbk、prc、gb2312、gb18030、cp936都设置在这个列表中,其实是没有必要的。
在VIM中,对于中文,Windows下和Unix/Linux下的编码表示是不同的,Windows下是cp936,Unix/Linux下是eus-cn。而gbk、prc等等都是中文编码阿的别名。因此,正确的方法是使用别名。chinese和prc都是中文的别名,它们在Windows下面和Unix/Linux下面分别对应正确的编码。详细介绍可查看VIM文档:
:help encoding-names
fileencoding
可简写为fenc。功能是设置VIM编辑的文件的编码。这个和encoding可以不同。如果不对其进行设置,其值与encoding相同。因此如果在Windows下,默认保存的文件编码就是gb2312的,而此时若希望默认保存的文件编码为utf-8,则可以在vimrc文件中如此设置:
set fileencoding=utf-8
termencoding
可简写为tenc。功能是设置终端使用的编码。这个貌似没什么用。我开始准备用它来解决Windows下gVim安装中文文档乱码的问题,可发现不管用。
++enc
也可写成++encoding。功能是强制指定编码。例如,正在编辑一个编码为gb2312的文件,想将其转存为utf-8编码,可以这样操作:
:w ++enc=utf-8 newfile.txt


最新评论