vim插件YouCompleteMe

vim开发中代码补全插件太弱(OmniCppComplete等),当看到YouCompleteMe的介绍,被其强大折服,决定改用YouCompleteMe。

 

一 安装

       

1 安装python(7.5)

./configure --prefix=/usr/local --enable-share CFLAGS=-fPIC
make 
sudo make install

 

2 获取vim74并安装

编译安装vim74 可以参考 https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source,但里面有个关于perl的坑,后面说。

2.1下载 vim-7.4.tar.bz2 并安装

2.2 安装

./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/local/bin/python2.7-config --enable-perlinterp --enable-gui=gnome --enable-cscope --enable-luainterp --prefix=/usr/local  

make VIMRUNTIMEDIR=/usr/local/share/vim/vim74

报错:

/usr/bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > auto/if_perl.c
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -prototypes -typemap \
	    /usr/share/perl5/ExtUtils/typemap if_perl.xs >> auto/if_perl.c
Can't open perl script "/usr/share/perl5/ExtUtils/xsubpp": 没有那个文件或目录
make[1]: *** [auto/if_perl.c] 错误 2
make[1]: Leaving directory `/home/fishermen/soft/program/vim74/src'
make: *** [first] 错误 2

 

看来perl5 的ExtUtils缺dd,yum search查查:

yum search perl |grep ExtUtils
perl-ExtUtils-CBuilder.x86_64 : Compile and link C code for Perl modules
perl-ExtUtils-Embed.x86_64 : Utilities for embedding Perl in C/C++ applications
perl-ExtUtils-MakeMaker-Coverage.noarch : Allows perl modules to check test
perl-ExtUtils-ParseXS.x86_64 : Module and a script for converting Perl XS code
perl-ExtUtils-MakeMaker.x86_64 : Create a module Makefile

继续安装 perl-ExtUtils-Embed了,do:

sudo yum install perl-ExtUtils-Embed

重复执行2.2,应该可以成功了。

3 安装YCM

利用vundle安装YouCompleteMe,然后在YouCompleteMe执行:

Linking CXX shared library /home/fishermen/.vim/bundle/YouCompleteMe/python/ycm_core.so
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value
collect2: ld 返回 1
make[3]: *** [/home/fishermen/.vim/bundle/YouCompleteMe/python/ycm_core.so] 错误 1
make[2]: *** [ycm/CMakeFiles/ycm_core.dir/all] 错误 2
make[1]: *** [ycm/CMakeFiles/ycm_core.dir/rule] 错误 2
make: *** [ycm_core] 错误 2

 ./configure CFLAGS=-fPIC CPPFLAGS=-fPIC --enable-shared

make; sudo make install;

好了YCM的install脚本通过,但是打开vim报clang的错,clang需安装。

4 安装CLang支持

参考

http://www.cnblogs.com/waterlin/archive/2011/07/14/2106056.htmlwo

由于我在虚拟机上安装,单cpu,编译了近5个小时

5 安装YCM_CORE

启动vim,可能会报ycm若干函数找不到,或者报"ycm_core too old",这个时候你需要安装ycm_core

方法:

cd ~
mkdir ycm_build
cd ycm_build
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=/usr/local ~/.vim/bundle/YouCompleteMe/cpp/
make ycm_core

 到此,YCM安装完毕。

二 使用小结

1 自动提示系统头文件

 在.ycm_extra_conf.py 的flags中增加如下路径:

'-isystem',
'/usr/include',
'-isystem',
'/usr/local/include',

2 设置vi默认使用的ycm配置

在.vimrc中增加如下配置:

let g:ycm_global_ycm_extra_conf = 'xxxxx/xxxxx/.ycm_extra_conf.py'

猜你喜欢

转载自fishermen.iteye.com/blog/1961232