折腾you complete me

这几天一直在折腾 YouCompleteMe (YCM),果然自己还是太水了啊,哈哈哈。。。

不过,今天终于能好好的跑着玩了,不要太开心,折腾的具体情况如下:
ps: 这是写c++的。。其他的自己找找。。
pps:没有表情的世界是如此空虚。。。

系统环境: Deepin 2014

vim: VIM - Vi IMproved 7.4.152

准备工作: git, cmake, python-dev

对了,我是用的Vundle 进行安装的 本着能用自动化绝逼不手工的原则,哈哈。。

第一步:安装 Vundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

第二步:修改.vimrc文件:
我用的.vimrc如下,刚开始折腾,轻拍。。

1 set nocompatible " be iMproved, required
2 filetype off " required
3
4 set number
5 " set the shift
6 set tabstop=4
7 set softtabstop=4
8 set shiftwidth=4
9 set autoindent
10 set cindent
11
12 set hlsearch
13
14
15 " set the runtime path to include Vundle and initialize
16 set rtp+=~/.vim/bundle/Vundle.vim
17 call vundle#begin()
18 " alternatively, pass a path where Vundle should install plugins
19 "call vundle#begin('~/some/path/here')
20
21 " let Vundle manage Vundle, required
22 Plugin 'gmarik/Vundle.vim'
23
24 Plugin 'Valloric/YouCompleteMe'
25 let g:ycm_global_ycm_extra_conf = './.vim/bundle/YouCompleteMe/.ycm_extra_conf.py'
26
27 Plugin 'scrooloose/syntastic'
28
29 Plugin 'scrooloose/snipmate-snippets'
30
31 Plugin 'Auto-Pairs'
32
33 Plugin 'scrooloose/nerdtree'
34
35 Plugin 'Solarized'
36
37 " All of your Plugins must be added before the following line
38 call vundle#end() " required
39 filetype plugin indent on " required
40 " To ignore plugin indent changes, instead use:
41 "filetype plugin on
42 "
43 " Brief help
44 " :PluginList - lists configured plugins
45 " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
46 " :PluginSearch foo - searches for foo; append `!` to refresh local cache
47 " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
48 "
49 " see :h vundle for more details or wiki for FAQ
50 " Put your non-Plugin stuff after this line

 

基本上都是想起来一个就加一个,需要什么添加什么。。

第三步:打开vim 执行 :PluginInstall ,这个等的时间稍稍有点长,YCM大小约在164M左右,可以根据自己的网络环境选择玩耍多久。。哈哈。。

第四步:编译安装YCM

cd ~/.vim/bundle/YouCompleteMe
./install.sh --clang-completer

这个也要等一会儿。。在这个过程中,遇到了好几次内存不够的情况,穷啊啊啊啊。。自己在服务器上没有装起来(512M),也有可能是因为我跑了不少其他的服务把。。然后这次成功还是在自己的笔记本电脑上(2G,果然穷。。T T)。。
我可能有些库没有在上面列出来。。大家自己用的时候,要是少了些什么,自己补上去啊。。

第五步:修改.ycm_extra_conf.py文件,这个文件可以每个项目都放一个独有的,反正我懒,就只弄了一个。。做了一下绝对定位。。
let g:ycm_global_ycm_extra_conf = '/home/xxx/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py'
就是这个。。(不要问我xxx是什么东西。。)

接下来的东西是用下面三个命令跑出来的一些include路径
echo | clang -v -E -x c++ -
然后把 clang换成g++(我在自己机子上跑gcc,结果跟g++一样的,反正你想用就自己去试试去。。)
结果是一下的一些乱七八糟的东西(仅为其中片段):

#include "..." search starts here:
#include search starts here:
/usr/include//c++/4.8
/usr/include//c++/4.8/backward
/usr/include//i386-linux-gnu/c++/4.8
/usr/local/include
/usr/bin/../lib/clang/3.5/include
/usr/bin/../lib/gcc/i686-linux-gnu/4.8/include
/usr/include/i386-linux-gnu
/usr/include
End of search list.

然后把上面的include整理成如下的东西丢到.ycm_extra_conf.py 的flags里面去

64 '-isystem',
65 '/usr/include',
66 '-isystem',
67 '/usr/local/include',
...
81 '-isystem',
82 '/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed',
83 '-isystem',
84 '/usr/include/i386-linux-gnu',

这些全都是flags里面一部分的,我是按照模板改了一下,对了,因为用到了c++11上面的东西,所以模板的flags里面我注释掉了一个'-Wc++98-compat',忍不了所有的报错。。

++++++++++++++++++++++++++++++++++++++++++++
来一圈圣痕,哈哈,ALL IS DONE!愉快耍起来。。

最后,向大婶们致敬 。。 哈哈哈。。。果然失心疯。。。


你可能感兴趣的:(折腾you complete me)