太折腾了!如果你搜索到了这篇文章,建议直接使用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 |
然后安装编译所需要的包
1234 | sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev python3-dev ruby-dev lua5.1 liblua5.1-dev libperl-dev git |
clone vim到目录下
123 | cd ~git clone https://github.com/vim/vim.gitcd vim |
configure vim。这一步要注意,YCM插件只能使用python2或python3,也就是在指定python目录的时候你只能设置一个。
123456789101112 | ./configure --with-features=huge --enable-multibyte --enable-rubyinterp=yes --enable-python3interp=yes --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf #这里注意检查是否是你的python目录 --enable-perlinterp=yes --enable-luainterp=yes --enable-gui=gtk2 --enable-cscope --prefix=/usr/localmake VIMRUNTIMEDIR=/usr/local/share/vim/vim81 |
如果以后你想方便卸载掉vim,使用以下命令安装
123 | sudo apt-get install checkinstallcd ~/vimsudo checkinstall |
否则的话就直接make install好了
12 | cd ~/vimsudo make install |
到此为止我们完成了vim的编译安装,但这仅仅是第一步。
0x1.下载YCM
可以通过Vundle来下载YCM或者是直接下载源码
1234 | cd ~/.vim/bundlegit clone --recursive https://github.com/Valloric/YouCompleteMe.gitcd YouCompleteMegit submodule update --init --recursive |
0x2.安装libclang
这一步是为了C家族的语义分析与补全,如果没有这个需求可以直接跳过。
可以通过手动编译安装,可以直接下载编译好的二进制文档。
我这里选择的是直接下载了编译好的二进制文档。
12 | cd ~wget -c http://releases.llvm.org/7.0.1/clang+llvm-7.0.1-armv7a-linux-gnueabihf.tar.xz |
12345 | tar -xvJf clang+llvm-7.0.1-armv7a-linux-gnueabihf.tar.xzmkdir ycm_buildcd ycm_buildcmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/clang+llvm-7.0.1-armv7a-linux-gnueabihf . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cppmake ycm_core |
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)
123456789101112 | let g:ycm_confirm_extra_conf=0 let g:ycm_complete_in_comments=1 let g:ycm_collect_identifiers_from_tags_files=1 " 键入第一个字符时就开始列出匹配项 let g:ycm_min_num_of_chars_for_completion=1 " 设置python解释器路径以及配置文档路径let g:ycm_server_python_interpreter='/usr/bin/python'let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py' |
0x4.可能会遇到的问题
1.退格失灵。
解决办法:在.vimrc文档中增加以下配置
12 | set nocompatibleset backspace=indent,eol,start |
2.无法补全C++代码
解决方法:在.ycm_extra_conf.py的flags部分添加以下内容
1234567 | '-isystem', '/usr/include', '-isystem', '/usr/include/c++/4.8', '-isystem', '/usr/include', '/usr/include/x86_64-linux-gun/c++', |
使用’-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
来源:https://www.cnblogs.com/liuzhongrong/p/12000124.html