和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。
我们来看看 Vim 的多字符编码方式支持是如何工作的。
1. Vim 启动,根据 .vimrc (在windows中是_vimrc)中设置的 encoding 的值来设置缓冲区、菜单文本、消息文本的字符编码方式。
查看文件的编码:
:echo &fileencoding
Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:
encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码)。
fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。
用英文菜单和提示最好,可以免去下面对菜单和提示信息(B,C部分)的设置
如果用英文菜单和提示在安装gvim的时候,将支持本地语言的选项去掉。
解决vim文件乱码,打开文件乱码,vim菜单和提示信息乱码, 有四个跟字符编码方式有关的选项,分别是encoding、fileencoding、fileencodings、termencoding。
我们需要在linux中修改.vimrc文件(在windows中是_vimrc)来进行设置。
windows系统也可以在vim菜单项中:编辑>启动设定,即直接打开_vimrc文件
A,
"设置文件的代码形式 set encoding=utf-8 set termencoding=utf-8 set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,chinese
B,
"vim的菜单乱码解决: "同样在 _vimrc文件里以上的中文设置后加上下列命令, source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim
"vim的提示信息乱码解决 language messages zh_CN.utf-8
参考自:http://www.ac.net.blog.163.com/blog/static/13649056201112041417651/
http://www.douban.com/note/145491549/
http://coolshell.cn/articles/5426.html
http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/