YCM 编码错误解决

------------------------------------------------------------------------------------------------------------------

这种方法还是有点缺陷,比如说。多加几个大括号就不能自动匹配补全多个大括号之外变量。并且需要手动按键匹配。= =(如果你的路径是纯ASCII码的话是可以自动匹配补全的)

                                                                              -------------By CHC 2014/7/25修改

------------------------------------------------------------------------------------------------------------------


内流满面啊!!这个问题在去年就已经被解决了。。还好我订阅了github。今天心血来潮就去看了一下。。发现了solution。。

按照我上回的方法戳我编译完YCM(YOUCOMPLETEME)之后,如果GVIM在打开CPP文件的时候出现Unicode can't convert ....的话就恭喜了。。要么你的CPP文件里包含了UNICODE字符。要么你的路径包含了UNICODE字符。好心酸。美中不足的地方终于解决了。

如果看完此文还不懂的话猛戳这里

首先。需要把...Vim\vimfiles\bundle\YouCompleteMe\python\ycm里面的vimsupport.py修改几行。把

106行的

  1. def GetBufferNumberForFilename( filename, open_file_if_needed = True ):  
  2.   return GetIntValue( "bufnr('{0}', {1})".format(  
  3.       os.path.realpath( filename ),  
  4.       int( open_file_if_needed ) ) )  
给改为:

  1. def GetBufferNumberForFilename( filename, open_file_if_needed = True ):  
  2.   return GetIntValue( "bufnr('{0}', {1})".format(  
  3.       ToUtf8IfNeeded( os.path.realpath( filename ) ),  
  4.       int( open_file_if_needed ) ) )  
python大法好。。可是我却不懂。不过看那个函数上就优化了那么一点点。。苍天啊!!!!

改完了之后,别急。

如果这时你打开带有中文的CPP文档时。如果你的encoding编码不是utf-8的话就会显示Unicode can't conver ...这个蛋疼的提示。

这个时候。你试一下

  1. set encoding=utf-8  
  2. set langmenu=zh_CN.UTF-8  

之后会发现突然可以补全而且没有那个讨厌的提示了。。

恩。如果发现提示变成乱码了也不要慌张。。

设置一下。

  1. "提示信息乱码解决"  
  2. language message zh_CN.UTF-8  
好吧,就这么简单。。

这么设置完成过后。我突然间发现。。蛋疼的来了。。控制台居然不能输出中文。。不能忍啊。。百度了半天终于找到一个解决方案。。

set fileencodings的时候。chinese放在utf-8前面,控制台就可以输出中文了。

好了。总的这部分设置代码我贴出来。


  1. "防止特殊符号无法正常显示  
  2. set ambiwidth=double  
  3. "设置默认编码  
  4. set encoding=utf-8  
  5. set langmenu=zh_CN.UTF-8  
  6. "提示信息乱码解决"  
  7. language message zh_CN.UTF-8  
  8. "菜单乱码解决"  
  9. source $VIMRUNTIME/delmenu.vim  
  10. source $VIMRUNTIME/menu.vim  
  11. ""set encoding=cp936  
  12. "设置文件编码  
  13. ""set fileencodings=utf-8,cp936,chinese,latin-1,ucs-bom,gb18030,big5,euc-jp,euc-kr,latin1,gbk,gb2321  
  14. set fileencodings=ucs-bom,chinese,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1  
nice,尽情享受吧!!

你可能感兴趣的:(vim)