在CentOS 6.6 64bit上安装vim智能补全插件YouCompleteMe

本文详细介绍了在CentOS6.6环境下安装YouCompleteMe插件所需的前置条件和具体步骤,包括升级gcc、安装vim、clang、libc++等依赖库,并通过Vundle插件完成YouCompleteMe的安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介
YouCompleteMe是一个随键而动的、支持模糊搜索的、高速补全的插件。YCM由google公司搜索项目组的软件工程师Strahinja Val Markovic所开发,YCM后端调用libclang(以获取AST,当然还有其他语言的语义分析库)、前端由C++开发(以提升补全效率)、外层由 python 封装(以成为 vim 插件),它可能是我见过安装最复杂的vim插件了。

安装前提条件及分析
vim 7.3.584+
vim支持Python 2.6+
cmake
clang 3.3+
gcc/g++ 4.7+(支持c++11)
分析上面的这些前提条件,在CentOS 6.6上我们将需要做大量的升级工作:
1.gcc默认版本是4.4.7,不支持C++11,需要将gcc升级到4.8.2
2.vim默认不支持python,需要从源码编译并安装vim,在配置时加入对Python的支持
3.clang需要LLVM编译器框架,需要编译安装LLVM+clang
4.需要升级c++库到C++标准,需要安装clang标准库libc++,libc++abi.so等等

安装依赖库
yum -y install gcc-c++ subversion git 

从源码编译支持Python 2.7.10的vim,参见

http://blog.youkuaiyun.com/tao_627/article/details/50444866

http://blog.youkuaiyun.com/tao_627/article/details/49980815

将gcc升级到4.8.2,参见

http://blog.youkuaiyun.com/tao_627/article/details/50448924

安装LLVM+clang+libC+++libc++abi,参见
http://blog.youkuaiyun.com/tao_627/article/details/50449283

编译YouCompleteMe插件
需要事先安装cmake,clang等
现假定你已经通过Vundle安装YCM,就是在~/.vimrc文件中加入 
Bundle 'Valloric/YouCompleteMe'
然后用vim打开任意一个文件,比如
vim old.vimrc
在底部输入
:VundleInstall
这里Vundle会使用git自动下载YouCompleteMe的全部代码。此时我们会得到这样的错误提示:
Done! With errors; press l to view log
ycm_client_support.[so|pyd|dll] and ycm_core.[so|pyd|dll] not detected; you need to compile YCM before using it. Read the docs!

上述报错提示,需要安装ycm_client_support.so ycm_core.so,这需要编译YCM

假设YouCompleteMe的顶级目录是

~/.vim/bundle/YouCompleteMe
创建一个新文件夹用于存放build的东西
cd ~
mkdir ycm_build
cd ycm_build
cmake -G "Unix Makefiles" -DUSE_SYSTEM_LIBclang=ON  -DEXTERNAL_LIBCLANG_PATH=/usr/local/lib/libclang.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
这样会得到makefile文件,但是我们不会用到
cmake --build . --target ycm_support_libs
会在目录
/root/.vim/bundle/YouCompleteMe/third_party/ycmd
下面生成这三个库
libclang.so,ycm_core.so,ycm_client_support.so



修改配置文件.ycm_extra_conf.py,它是个隐藏文件,路径在

~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
在.vimrc文件中添加一行来进行全局设置

let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py '

下面是使用Vundle安装YouCompleteMe插件的截图,易见没有报错信息:



参考文献
[1].http://valloric.github.io/YouCompleteMe/
[2].http://valloric.github.io/YouCompleteMe/#full-installation-guide
[3].http://www.linuxidc.com/Linux/2014-04/99719.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值