一 YCM
传说中有那么一个插件,它诞生时惊天地泣鬼神,无数插件无不五体投地,说起那天,哎呀那家伙,我就不说了。
YCM(YouCompleteMe)vim代码自动补全插件,在VIm中也有补全功能,(<C-P>能够进行基于文本的补全)但vim毕竟作为一个编辑器,其补全功能只是基于文本的。
- 基于文本的补全: 其通过文本进行一些正则表达式的匹配,再根据生成的tags(利用ctags生成)来实现自动补全的效果。
- 基于语义的补全:顾名思义,其是通过分析源文件,经过语法分析以后进行补全。由于对源文件进行分析,基于语义的补全可以做到很精确。但是这显然是vim所不可能支持的。而且经过这么多年发展,由于语法分析有很高的难度,也一直没有合适的工具出现。直到,由apple支持的clang/llvm横空出世。YouCompleteMe也正是在clang/llvm的基础上进行构建的。
二 为了装上这插件我的代价
1.耽搁了将近一天时间。
2.将自己的home家目录误删,现在都不知道是重装系统还是怎么恢复。(我工程实践的项目也没有了,后天就要答辩了,我也很绝望呀!可还是要保持微笑)
先放图
补全
其自带代码检查
三 安装
话不多说,直接给官方地址,YCM.(请以官方安装步骤为主,我这里只是给点我安装参考)
- 需要的工具 cmake Vundle(vim 管理插件工具)vim(版本需要7.4以上,不必担心,现在基本都是8.0) Python3或者Python
- 而如何看自己的信息呢?
vim --version
如果有 +Python 或者+Python3 的字样说明支持 同时也可以查看到自己vim的版本
- 将下面这句添加到~/.vimrc中 , 然后sudo vim 进入vim中 :PluginInstall 安装插件(这是Vundle 中装插件的方法,可以先去了解一下Vundle) 执行完之后,在~/.vim/Vundle中应该有个YouCompleteMe的文件,一般的插件到这里基本就成功了, 但YCM不同与一般的插件 , 他需要编译 。
Plugin 'Valloric/YouCompleteMe'
- 我需要C家族的语义补全,安装官方建议,从官方下载二进制文件,地址 ,因为我是Ubuntu发行版 , 所以我选择了这个
-
下载成功后将里面的东西解压到~/ycm_temp/llvm_root_dir (这个目录需要自己建)可以看见成功后有如下图所示结构:
- 利用cmake产生makefile文件
sudo apt-get install cmake
(如果没有cmake请安装,这是ubuntu的安装方式)
sudo apt-get install python-dev python3-dev
(这个也一起装了,虽然我也不是很懂)
$ mkdir ~/.ycm_build $ cd ~/.ycm_build
(创建目录存放编译文件,并且cd到刚刚创建的目录,后面的两个命令都是在这个目录下输入的)
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
(注意在稍微长了点哈, 但没毛病,可以看见他将llvm-root的路径设为我们刚刚得到的我目录,里面有我们从网上下载的东东)
cmake --build . --target ycm_core --config Release
- 官网上的教程似乎到此为止之了,但好像仍需要配置一下。
$ cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/
复制配置文件 , 每当打开一个项目的时候,他会自上的搜索配置文件,所以我们放到根目录下,总会搜索到了。
“ ~/.vimrc
let g:ycm_server_python_interpreter='/usr/bin/python'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
在配置文件里加上这两句。
参考
一步一步带你安装史上最难安装的 vim 插件 —— YouCompleteMe(这位没有下载官网建议的二进制包,而是自己下载的libclang,)
Vim智能补全插件YouCompleteMe安装
可以参考一下,但是毕竟时间间隔有点久,可能会有点错误。