1. 程式人生 > >解決安裝YouCompleteMe與Vim版本不相容問題

解決安裝YouCompleteMe與Vim版本不相容問題

用vim 7.4.4版本裝YouCompleMe的時候提示這樣的資訊:
YouCompleteMe unavailable: requires Vim 7.4.1578+。明明版本比它要求的還高,居然還會報錯,網上搜了一下說需要升級vim到8.0版本,大都需要用到sudo命令,但是我的是在伺服器上,我並沒有sudo許可權,所以可以考慮將vim安裝在local,安裝步驟如下:

I. Install the Vim 8.0 with Make

1. Install the necessary package.

$ sudo yum install gcc-c++ ncurses-devel python-devel

2. Get the source code of Vim.

$ git clone https://github.com/vim/vim.git

3. Go to build directory.

$ cd vim/src && git check v8.0.1522
Use the version like my MacVim.

4. Configure it !

$ ./configure \
  --disable-nls \
  --enable-cscope \
  --enable-gui=no \
  --enable-multibyte  \
  --enable-pythoninterp \
  --enable-rubyinterp \
  --prefix=/home/jonny/.local/vim \
  --with-features=huge  \
  --with-python-config-dir=/usr/lib/python2.7/config \
  --with-tlib=ncurses \
  --without-x
--prefix: For local user, not effect other users.
--with-python-config-dir: For support the YouCompleteMe plugin.
I remove --enable-perlinterp args, because it will build fail, and I don’t need write the perl script.

注意上面的一些引數需要做對應的修改:

  • --prefix: 需要改成local user路徑
  • --with-python-config-dir:我用的是anaconda,然後我的/home/anaconda3/lib/python3.7路徑下並沒有config資料夾,這個資料夾是用來支援YouCompleteMe外掛的,所以你可以先手工建立這個資料夾即可。

5. Compile and install the Vim.

$ make && make install

6. Add ~/.local/vim/bin/ into $PATH.

$ vim ~/.bashrc
...
if [ -d "$HOME/.local/vim/bin/" ] ; then
  PATH="$HOME/.local/vim/bin/:$PATH"
fi

7. Reload the bashrc.

source ~/.bashrc

8. Check Vim version

輸入$ vim --version你就會看到此時vim版本變成了8.0.

II. Install the YouCompleteMe plugin

  1. Install the necessary package.
$ sudo yum install gcc-c++ cmake python-devel
  1. Get the YouCompleteMe plugin.
$ mkdir ~/.vim/bundle && git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
  1. Compile and install the YouCompleteMe.
$ cd ~/.vim/bundle/YouCompleteMe && python ./install.py

Enjoy it.

感謝: Install the Vim 8.0 and YouCompleteMe with Make on CentOS 7.4



MARSGGBO原創





2018-11-29