YouCompleteMe的安装

来源:互联网 发布:ibm云计算 编辑:程序博客网 时间:2024/04/30 12:01
按照http://blog.csdn.net/dongjideyu/article/details/12617351来安装
YCM需要最新版本Vim(7.3.584)的支持,从代码编译Vim的方法看这里。
使用Vundle安装 youcompleteme后,需要先编译才能使用。
cd ~/.vim/bundle/YouCompleteMe
要在源码文件夹中 git submodule update --init --recursive
./install.sh --clang-completer
语意补全要正确工作,需要配置好.ycm_extra_conf.py文件,模板在这里。可以把这个文件放在项目的根目录下,打开项目文件时,YCM会循环向上搜索并加载这个文件,或者在vimrc文件中加入
let g:ycm_global_ycm_extra_conf = 'your path to .ycm_extra_conf.py'
如果.ycm_extra_conf.py中include path等配置没有问题,YCM已经可以工作了。

注意:
22.0 关于.ycm_extra_conf.py的修改
只需要修改flags标记,加入如下几项

'-isystem',                                                                                                                                   
#apt-get install libc++ or change this value to libstdc++                                                                                     
 '/usr/include/c++/4.4.7/',                                                                                                                    
 '-isystem',                                                                                                                                   
 '/usr/include',                                                                                                                               
 '-isystem',                                                                                                                                   
 '/usr/local/include',                                                                                                                         
 '-I',                                                                                                                                         
 '/home/×××/', 

这个文件的原型默认是在~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py

22.1 如果libstdc++的版本低于15就会出”在vim启动时SetUpPython“的问题,
可以通过在.bashrc中添加
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib64/"
来解决
因为更新版本的gcc会把新版本的 动态库 放到 /usr/local/lib64下面
通过命令
 "#strings /usr/local/lib64/libstdc++.so.6.0.19|grep GLIBCXX“可以来验证

22.2 打开.c .cpp .py文件直接卡死 Freeze

在vimrc中增加 let g:loaded_youcompleteme=1 就可以了

YCM的配置参考:http://www.cnblogs.com/zhongcq/p/3630047.html

22.3 通过运行:ycmDebugInfo发现The ycmd server SHUT DOWN
然后看提示的log, 会显示RuntimeError: Error importing ycm_core. Are you sure you have placed a version 3.2+ libclang.[so|dll|dylib] in folder "/home/×××/.vim/bundle/YouCompleteMe/         third_party/ycmd"? See the Installation Guide in the docs. Full error: libedit.so.2: cannot open shared object file: No such file or directory

解决办法:
用install.sh安装的libclang的版本,显示是下载的libclang 3.5, 但是会引起Crash。
这个没搜到什么靠谱的办法,预测自己的版本肯定是偏低,拷贝了一个别人自己编译的libclang.so(也是在相同的位置)放到自己的目录/.vim/bundle/YouCompleteMe/third_party/ycmd下面,就OK了

另外,我也重编了clang,估计上面替代一下就好了:
cd ~
          mkdir ycm_build
          cd ycm_build
          cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/cpp
          cmake -G "Unix Makefiles" .  -DPATH_TO_LLVM_ROOT=~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/llvm  -DEXTERNAL_LIBCLANG_PATH=/data/home/renmiaojian/.vim/bundle/YouCompleteMe/third_party/ycmd/libclang.so   ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
          make ycm_core
          make ycm_support_libs

22.4 如果系统内的libclang 的版本是比较低的
貌似是 低于3.3,需要重新编译出更新的clang.so.
参考:http://llvm.org/docs/GettingStarted.html#git-mirror
可以用Git下载,注意各个目录的位置。

22.5  修改timeout的值,有些编译很慢的文件会显示超时
.vim/bundle/YouCompleteMe/python/ycm/client/completion_request.py

默认0.5 可以改成2
23. 配合YCM的两个插件
一个很好的配置参考:http://www.cnblogs.com/zhongcq/p/3642794.html
23.1 syntastic
一款支持多语言的实时语法检查插件。在 syntastic 的作用下,编码中、编译前,所有语法错误都将被抓出来并 呈现给你。

0 0
原创粉丝点击