发现vim7.3在win7平台下对文件编码类型的检测还是有待改善

自从VC6开始,VS就不直接在菜单里提供从.dsw生成.mak文件的功能了,,

不过这样也阻止不了我们手写makefile来nmake,,

现在我是用vim来编译一个原来在vs05已建好的工程,

问题出现在用omnicpp插件自动补全的时候,那些变量的提示框是乱码的.

一开始以为是buf的乱码..

而且也发现,出现乱码的时候,我只要执行

set  enc=gbk

之后就不会再乱码了..

fileencodingsfileencodingencoding 和 termencoding。这几个变量我都看了N次了...还是没头绪

但是执行了上一句之后,我平时的:w后的提示出现乱码了.好你不能兼得.....

折腾了老半天后才发现..

我的想,omnicpp的提示应该是根据生成的tags文件来的.

于是随手打开了tags文件,,,,发现其中的中文果然乱码了.

运行

set fenc出现为latin1....

用notepad打开好好地为ansi(cp936),,,,,看来vim对该文件的彻底地识别错误了.....

无办法,只好通过第三方的工具来加强win7下面的vim对编码的识别率了....

从Ubuntu中文论坛中看到某贴

vim内置的文件编码检测机制好像不完善呀

http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=335330

1,安装fencview.vim
2,拷贝tellenc.exe到$VIMRUNTIME目录下
3,做如下配置

代码:
" 打开文件时按照fileencodings指定的文件编码顺序进行检测
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

" 通过fencview插件进行编码检测
let g:fencview_autodetect = 1
let g:fencview_auto_patterns = '*'
 
-----上面应还有下载iconv.dll(我自带的vim73是没有这个东西的)
我把下面的iconv.dll放在$PATH下面了,
上面的问题才算解决..
 
 
下面的参考链接:
原文地址:https://www.cnblogs.com/vimmer/p/2395539.html