youcompleteme的安装

来源:互联网 发布:发那科机器人编程培训 编辑:程序博客网 时间:2024/05/21 14:01
0X1.预备知识:
YCM是vim的一款基于语义的智能补全插件。该插件的功能与以下插件相冲突:
- clang_complete
- AutoComplPop
- Supertab
- neocomplcache
虽然可以补全很多种编程语言,但YCM主要还是针对c++的,此外它对python的支持也不错。作为一个c++程序员,要想尽可能地发挥YCM的功能,推荐安装以下软件:
- vim (尽量新的版本,至少 >= 4.3.7,截至 2013-10-27,老版本的可能会使得运行的时候出现^U^N^P pattern not found问题)
- git (作为vundle插件的支持)
- vim 插件 Vundle (参考:https://github.com/gmarik/vundle
- vim 插件 syntastic 与 ListToggle
- CMake (>=2.8) (为c++项目生成 compile database)

- pylint (高级python语法检查支持)

0X2.Vundle的安装

Vundle是vim的一款进行插件管理的插件。它需要git的支持,git可以在各发行版软件源内找到并安装。除了安装时的一个命令,日常vundle的使用并不需要了解git命令。安装过程参照Vundle首页https://github.com/VundleVim/Vundle.vim#about中的Quick Start部分

        注意第三步Configure Plugins中,只保留了第一个plugin Plugin 'VundleVim/Vundle.vim',其他的都在配置文件中删除掉了,配置文件指用户自己在~目录下新建的.vimrc文件


0X3. 编辑.vimrc
在.vimrc中添加以下内容:
call vundle#begin()
Bundle 'gmarik/vundle'
Bundle 'Valloric/YouCompleteMe'
Bundle 'Valloric/ListToggle'
Bundle 'scrooloose/syntastic'
call vundle#end()            
filetype plugin indent on 

关键的是其中以Bundle开头的行,每一个Bundle代表一个vim插件,这些省略完整URL插件都是托管在https://github.com上的。
编辑完成后,在vim下运行下面的命令进行插件安装,请确保你的网络连接正常。
:source ~/.vimrc(到底需不需要运行这条命令?)
:BundleInstall
如果安装成功,你将看到Done!的提示字样。在本例中,插件:YouCompleteMe, syntastic和ListToggle被安装进你的vim中。

0X4.YCM语法补全模块的编译
为了让YCM实现语法补全,还需要编译语法补全模块和编辑一个配置文件
在终端下执行以下命令:
$cd ~/.vim/bundle/YouCompleteMe
并执行 ./install.py --clang-completer(安装过程中会下载clang的库,安装前还需要用sudo apt-get下载python-dev )
即可安装语法补全模块。

0X5 配置文件 .ycm_extra_conf.py
这个文件决定了YCM在进行c系语言(c,c++,etc.) 语法补全时的行为。默认的样板配置文件在
$HOME/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
对于YCM来说,当打开一个代码文件时,插件将顺着文件所在的路径一直向上查找,如果搜索到第一个配置文件将立刻读入。如果一直搜索到根目录依旧无法找到配置文件,语法补全将不被启用。由此可知,文件所在目录的配置文件优先级最高,根目录的优先级最低。
一种比较好的使用方法是在每个项目中创建一个配置文件,或者将项目根据语言进行分类,在每个语言文件夹下建立一个配置文件。
默认配置文件是支持c++的,但是需要修改一处地方。可以将该文件拷贝出来并编辑:
vim ~/.ycm_extra_conf.py
找到以下内容:
# NOTE: This is just for YouCompleteMe; it's highly likely that your project
# does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
# ycm_extra_conf IF YOU'RE NOT 100% YOU NEED IT.
try:
final_flags.remove( '-stdlib=libc++' )
except ValueError:
pass
将之删除后YCM才会补全c++标准库的内容。这样,一个最小能用的配置文件就出炉了。

       同时在.vimrc中添加  

let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
set nu    

参考资料:http://tieba.baidu.com/p/2672605209?see_lz=1#40874659085l

http://blog.jobbole.com/58978/ 

http://www.v2ex.com/t/69809 

1 0
原创粉丝点击