YouCompleteMe:永远相信美好的事情即将发生

对于VIM插件YouCompleteMe,最近比较纠结,这名字倒是取得相当顺眼,就是安装起来太顽强了

1:Cygwin

如果想Cygwin上安装,建议放弃,我在编译得离成功最近的一步的时候,由于Boost的一些库文件很多ifdef指定了操作系统以及头文件路径,与linux基本一致,但是cygwin毕竟类linux工具,差异还是很大的,改了很多boost的头文件内容,添加对cygwin的兼容,但是错误还是接踵而至,建议不要浪费时间

/usr/include/python2.7/pyport.h:886:2: 错误:#error “LONG_BIT definition appears wrong for platform (bad gcc/glibc config?).”
#error “LONG_BIT definition appears wrong for platform (bad gcc/glibc config?).”
  ^
BoostParts/CMakeFiles/BoostParts.dir/build.make:402: recipe for target ‘BoostParts/CMakeFiles/BoostParts.dir/libs/python/src/converter/arg_to_python_base.cpp.o’ failed
make[3]: *** [BoostParts/CMakeFiles/BoostParts.dir/libs/python/src/converter/arg_to_python_base.cpp.o] Error 1
make[3]: *** 正在等待未完成的任务….
BoostParts/CMakeFiles/BoostParts.dir/build.make:425: recipe for target ‘BoostParts/CMakeFiles/BoostParts.dir/libs/python/src/converter/builtin_converters.cpp.o’ failed
make[3]: *** [BoostParts/CMakeFiles/BoostParts.dir/libs/python/src/converter/builtin_converters.cpp.o] Error 1
BoostParts/CMakeFiles/BoostParts.dir/build.make:448: recipe for target ‘BoostParts/CMakeFiles/BoostParts.dir/libs/python/src/converter/from_python.cpp.o’ failed
make[3]: *** [BoostParts/CMakeFiles/BoostParts.dir/libs/python/src/converter/from_python.cpp.o] Error 1
CMakeFiles/Makefile2:78: recipe for target ‘BoostParts/CMakeFiles/BoostParts.dir/all’ failed
make[2]: *** [BoostParts/CMakeFiles/BoostParts.dir/all] Error 2
CMakeFiles/Makefile2:212: recipe for target ‘ycm/CMakeFiles/ycm_support_libs.dir/rule’ failed
make[1]: *** [ycm/CMakeFiles/ycm_support_libs.dir/rule] Error 2
Makefile:148: recipe for target ‘ycm_support_libs’ failed
make: *** [ycm_support_libs] Error 2

 

2:CentOS 6.4

可以一试,今天在CentOS上已经完成了所有的编译和安装,依旧是通过Vundle的方式,YouCompleteMe最后将所有的错误都fix了,但是最后在用vim的时候,却没有出现应有的效果,到最后才发现,我的vim7.4安装得并不完全,原因是vim必须兼容python,也就是通过vim –version查看能够看到python前面是+,而不是-,说来惭愧,下载了vim7.4的源代码,configure里不论怎么指定,python就是不进去,头痛,现在就差这一步了

2015-1-8补充:其实vim兼容python没问题,昨天是环境变量设置的问题,安装有两个vim,在prefix的时候没弄对,vim安装无误,但是打开文件编辑的时候,并没有出现任何提醒,补全功能,而且高亮都没有,与ubuntu14.10最后成功完全不同,至今原因未明,看着这插件离我想象中差距还是不小,不再折腾了~!

 

3:Ubuntu14.10

说实话用Ubuntu14.10是被逼的,为什么呢,vim默认7.4,首先就省下了一大笔功夫,其次Githup以及其他人貌似ubuntu安装的居多,然后不太喜欢,但还是在VMware Player里安装了下最新版的ubuntu,不愧是个人用户用户体验最好的操作系统,最终完成了所有安装和配置:

(1)vim 7.4

sudo apt-get install vim

(2)update?

在更新源的时候,如果直接对话框修改成中科大或者什么,感觉更新速度还是不太快,最好的方法是搜索一下网上的source.list源,然后copy到/etc/apt/source.list当中,然后我就直接sudo apt-get update直接将所有的全更新一遍,我也不是处女座,说到底都是被这vim插件气得

(3)glibc

这一步一般没人要求,我这里推荐sudo apt-get install glibc*,因为有太多的库会成为你成功路上的不稳定因素,再重申一次,非处女座

(4)python-dev

这一步就是为了vim服务,sudo apt-get install python-dev,哦对了,python版本要求2.6以上才行

(5)cmake

sudo apt-get install cmake

(6)vundle

根据Githup作者的推荐,用vundle来安装,因为任何一个错误都会导致最终的安装配置失败,这是作者的原话,not me!

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

如果没有git,请sudo apt-get install git,这里又有一个纠结的地方,说不定这个资源对你的网络太说太坑了,半天没动静,请换台机器或者环境试试,记住只要你成功checkout到本地了,好好保留,不要再下次重新来git了,除非你愿意纠缠,还有切记不要另取炉灶,用什么llvm之类的来做,上周末弄到凌晨3点最终还是失败,血泪史,一定要跟着作者的方向走,用vundle方式安装

(7).vimrc

在你自己当前目录下,我的话就是cd /home/lihui,添加下列内容来配置vim配置文件:

vim .vimrc

set nocompatible              ” be iMproved, required
filetype off                  ” required

” set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
” alternatively, pass a path where Vundle should install plugins
“let path = ‘~/some/path/here’
“call vundle#rc(path)

” let Vundle manage Vundle, required
Plugin ‘gmarik/vundle’

” The following are examples of different formats supported.
” Keep Plugin commands between here and filetype plugin indent on.
” scripts on GitHub repos
Plugin ‘tpope/vim-fugitive’
Plugin ‘Lokaltog/vim-easymotion’
Plugin ‘tpope/vim-rails.git’
” The sparkup vim script is in a subdirectory of this repo called vim.
” Pass the path to set the runtimepath properly.
Plugin ‘rstacruz/sparkup’, {‘rtp’: ‘vim/’}
” scripts from http://vim-scripts.org/vim/scripts.html
Plugin ‘L9’
Plugin ‘FuzzyFinder’
” scripts not on GitHub
Plugin ‘git://git.wincent.com/command-t.git’
” git repos on your local machine (i.e. when working on your own plugin)
Plugin ‘file:///home/gmarik/path/to/plugin’
” …

filetype plugin indent on     ” required
Bundle ‘Valloric/YouCompleteMe’

(8)BundleInstall

在此还是要说一句,vim –version查一下,你的vim版本>7.38,而且一定是+python,而不是-python,如果是-python,你不用接着玩了,后面的时间比较久,都是浪费时间,说好的必须vim要兼容python,不要执迷不悟

确认无误之后:

vim

:BundleInstall

这样会出现一个进度

“Installing plugins to /home/lihui/.vim/bundle”
. Plugin ‘gmarik/vundle’ |~
+ Plugin ‘tpope/vim-fugitive’ |~
+ Plugin ‘Lokaltog/vim-easymotion’ |~
+ Plugin ‘tpope/vim-rails.git’ |~
+ Plugin ‘rstacruz/sparkup’ |~
+ Plugin ‘L9’ |~
+ Plugin ‘FuzzyFinder’ |~
> Plugin ‘git://git.wincent.com/command-t.git’ |~
Plugin ‘file:///home/gmarik/path/to/plugin’ |~
Plugin ‘Valloric/YouCompleteMe’ |~
Helptags

+代表安装好了,可以看到向下进度,其中最后一步YouCompleteMe会报错,必须手动安装

(9)YouCompleteMe

上面完成之后cd .vim/bundle/YouCompleteMe

./install.sh –clang-completer

想对C和C++生效,补全等特性请带上后面的选项,如果这一步还有错误,自行解决,那就是编译和依赖问题,慢慢搞定!

(10)重要的备份

我提醒一下,假如自己安装搞定之后,一定不要沉寂在胜利的喜悦之中,因为这玩意从checkout到安装需要太多时间,但是好处是他全部都集中在同一个文件夹当中.vim/bundle,所以,请将bundle这个文件夹备份,为什么呢?下次你要在另一台机器上安装,直接将这个文件夹copy到.vim下,这样直接BundleInstall会省你很多事,进度也比较人性化,判断已存在的时候,它不会再次进行checkout和安装,如果你真的闲的蛋疼或者嫌自己网速太好,非要想重新体验一把,来过一次的话,我只能说god bless you!

 

最后体验的效果,python效果挺不错,但是C和C++的效果让我有些失望,不知道我是不是少了点什么或者配置文件没配置好,定义结构体,然后像p->或者t.这种,后面结构体内容都不出来,暂时不清楚原因,研究下再说~!

1

发表评论