我把所有的坑都踩了一遍,嗯
一点点准备工作
MacOS 请先下载 macvim
然后再 ~/.bash_rc 里面写别名
alias vim='mvim -v'
然后 source ~/.bash_rc
Linux 可以先clone一个vim 先不着急编译(99%的情况下自带的vim没办法直接支持 !!!!)
首先安装一个插件管理器 Vundle 这个比较简单直接 clone 下来然后放到 ~/.vim/bundle 下面
然后把这个写入到 ~/.vimrc 里面
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'Valloric/YouCompleteMe'
call vundle#end()
syntax on
set shiftwidth=4
set tabstop=4
然后把YouCompleteMe clone下来,放到~/.vim/bundle 下面
一些检查工作,请务必检查一下
首先需要确定python的版本,目前YCM安装不支持python2所以请安装python3 !!!
其次是确定Vim的python支持情况
可以 vim --version|grep python
主要是看有没有python而且要求python3前面是+(注意!)如果支持这个版本的,那么没问题了可以接着走,如果不支持,需要重新编译Vim(注意!)但是不要着急接,接着看!
另外看好这个Python3的版本号,后面编译YCM需要用这个版本的Python!!鄙人因为有多个版本的Python3,导致在这里卡了很长时间(这里是3.7.0所以就用这个路径下的,3.6.x后续会无法启动服务!) https://github.com/ycm-core/YouCompleteMe/issues/2874
python3 --version 看一下版本和这个是不是对的上
准备编译 YCM
cd ~/.vim/bundle/YouCompleteMe
python3 install.py (后面的参数按需填)
如果编译器版本不支持的话需要升级一下或者指定一个版本 (指定编译器版本非常有可能有问题,不过好在有解决方案)
export CC=/opt/gcc-x.x/bin/gcc
export CXX=/opt/gcc-x.x/bin/g++
编译好之后看一下服务是不是可用
cd ~/.vim/bundle/YouCompleteMe/third_party/ycmd/
cp ycmd/default_settings.json .
python3 ycmd --options_file default_settings.json
如果可用那么就好办了,如果不可用那么可能情况看输出:
如果无输出直接退 可能是python版本的问题,检查编译的python版本
如果出现GLIB_2.14 这种错误,那么有可能是你Python被编译的版本太低了,解决方法换一个高版本gcc编译的Python或者自己编译一个吧
网上有替换libc.so.6 这种方案的,这里真的不建议!
最后如果Vim不支持 python3 ,手动编译一个就好了
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp=yes \
--enable-python3interp=yes \
--with-python3-config-dir=$(python3-config --configdir) \
--enable-perlinterp=yes \
--enable-luainterp=yes \
--enable-gui=gtk2 \
--enable-cscope \
--prefix=/usr/local \
--with-features=huge # 这个可以不加
参考这个 https://github.com/ycm-core/YouCompleteMe/wiki/Building-Vim-from-source
最后
搜索路径在哪可以百度一下,加一个小配置我日后再补上