太折腾了!如果你搜索到了这篇文章,建议直接使用SpaceVim作为替代品。
0x0.第一个坑——不支持Python
我的树莓派的系统是基于Debian Stretch的Raspbian Stretch。使用apt-get安装的vim不支持python脚本。你可以通过输入:
1 |
vim --version | grep python |
来检查,如果发现python/python3前面出现了加号,恭喜你,你可以跳过本步骤了。它说明你的vim支持python。如果都是减号,你需要重新编译安装vim了。
在安装之前先将vim卸载掉。
1 |
sudo apt-get remove vim vim-runtime gvim |
然后安装编译所需要的包
1 |
sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev |
clone vim到目录下
1 |
cd ~ |
configure vim。这一步要注意,YCM插件只能使用python2或python3,也就是在指定python目录的时候你只能设置一个。
1 |
./configure --with-features=huge |
如果以后你想方便卸载掉vim,使用以下命令安装
1 |
sudo apt-get install checkinstall |
否则的话就直接make install好了
1 |
cd ~/vim |
到此为止我们完成了vim的编译安装,但这仅仅是第一步。
0x1.下载YCM
可以通过Vundle来下载YCM或者是直接下载源码
1 |
cd ~/.vim/bundle |
0x2.安装libclang
这一步是为了C家族的语义分析与补全,如果没有这个需求可以直接跳过。
可以通过手动编译安装,可以直接下载编译好的二进制文档。
我这里选择的是直接下载了编译好的二进制文档。
http://releases.llvm.org/download.html 官网有对应不同架构的预编译文档,自行挑选下载。下载好后
1 |
cd ~ |
1 |
tar -xvJf clang+llvm-7.0.1-armv7a-linux-gnueabihf.tar.xz |
0x3.配置YCM
YCM在语义分析时使用libclang,而libclang需要参数选项,这从哪里来呢?YCM通过提供给一个代码工程一个python文档的方式来通知libclang所需的参数选项,这个文档就是.ycm_extra_conf.py。
复制.ycm_extra_conf.py
1 |
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/ |
在.vimrc中添加以下配置项
注意下面的 python 解释器的路径要和编译 ycm_core 的时候使用的 python 解释器是相同的版本(2 或 3)
1 |
|
0x4.可能会遇到的问题
1.退格失灵。
解决办法:在.vimrc文档中增加以下配置
1 |
set nocompatible |
2.无法补全C++代码
解决方法:在.ycm_extra_conf.py的flags部分添加以下内容
1 |
'-isystem', |
使用’-isystem’是对系统自带的头文档进行解析,’-I’则是对第三方的头文档进行解析。
0x5.参考文章
https://www.cnblogs.com/zzqcn/p/4660615.html
https://www.jianshu.com/p/d908ce81017a?nomobile=yes
https://github.com/Valloric/YouCompleteMe
https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source