vim中的encoding、fileencoding、fileencodings分别是什么意思呀?该如何设置呢?

我用vim编辑的文本文件,里面写了汉字,然后再用UltraEdit打开,结果发现乱码,当然只是汉字乱码,这是怎么回事呢?是不是和encoding、fileencoding、fileencodings有关系?这三个是什么意思呀?如何样设置这三个才能做到一劳永逸以后永远不用设置了?

你应该是在Win下用 的vim, 可能encoding默认设置的是utf-8

set encoding=cp936 " 设置vim默认编码为gb,这样ue打开就不会乱码了。
set fileencodings=cp936,gb18030,gbk,gb2312,utf-8,ucs-bom,latin-1 " 这样打开不同编码的文件基本就不会出现乱码的情况。

估计你不会在终端下用vim。追问

我用的是windows操作系统,我的_viminfo文件里面有的东西是乱码不知道怎么回事,
我用ultraedit打开还是乱,但是英文字母和数字是好的,中文有问题,

追答

_viminfo 里的东西你可以不管,这个不是配置文件,配置文件是在你安装的vim目录下,比如如果你默认安装的话就是在 "c:\programfiles\Vim"下,(可能没有,需要自己建立),没有的话就自己建立一个_vimrc文件,在里面写下上面的两行,这样至少打开gb编码的文件不会乱码,vim配置要很多的,所以你还需要参考别人的配置文件然后逐渐丰富自己的配置文件。

ue也应该能打开utf-8编码的文件,你自己在菜单里面找找。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11
encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。
fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。

4、具体应用环境的设置

只编辑GBK编码的文件
set fileencodings=cp936
set fileencoding=cp936
set encoding=cp936

只编辑UTF-8编码的中文文件
set fileencodings=utf-8
set fileencoding=utf-8
set encoding=cp936 或者 set encoding=utf-8

同时支持GBK和UTF-8编码
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
set encoding=cp936 或者 set encoding=utf-8

如果在终端环境下使用Vim,需要设置termencoding和终端所使用的编码一致。例如:
set termencoding=cp936 或者 set termencoding=utf-8本回答被网友采纳
相似回答