我把所有的坑都踩了一遍,嗯
一點點准備工作
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
最后

搜索路徑在哪可以百度一下,加一個小配置我日后再補上
