Vim自动补齐Python-编译安装YouCompleteMe
环境:Centos7+vim8+Python2.7
说明:其中Python2.7为系统自带,本人用pyenv安装了Python3.6.4,切换到3.6的环境之后,但在最终安装YCM时,始终出现报错:PyThreadState_Get: no current thread。经查询是动态编译库lib的问题,试了网上搜寻的多种方法,但始终没有解决,最终还是选择了2.7的版本来编译YCM,希望用Python3安装成功的朋友也分享一下经验。
1. Vim8.0下载安装
a. 下载VIM8.0
wget ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2
b. 解压后进入vim80目录,安装如下插件,注意安装之前可能会需要以下依赖包,缺少什么根据报错自行安装即可。
yum –y install bzip2-devel bzip2-libs
yum –y install python-devel
编译安装
./configure--with-features=huge \
--enable-multibyte \
--enable-pythoninterp=yes \
--enable-gui=gtk2 \
--enable-cscope
make && make install
如果报了相关错误,可根据自己系统Python config的位置自行加入如下选项,--with-python-config-dir=/usr/lib64/python2.7/config(根据自己Python实际的位置,选择config路径),其中python-devel,这个依赖包很重要,如果没有安装,可能在安装完成vim之后,不支持Python,检查安装完成后是否支持Python:vim --version | grep python
2. YouCompleteMe下载编译安装
a. 先下载vundle,用其管理并安装一并插件
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
b. 在自己home目录下:vim .vimrc 添加如下内容,安装编辑完成之后根据文章末尾,再添加其配置信息即可。
set nocompatible
filetype off set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() Plugin 'gmarik/Vundle.vim'
call vundle#end()
filetype plugin indent on
保存之后进入vim,用 :PluginInstall 命令进行下载插件,下载完成之后进入该目录:进行编译安装,如果报错,缺少插件,可进行安装,我遇到的报错,需要安装如下插件,
yum –y install cmake make gcc gcc-c++
之后再编译安装
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-complete
至此YCM安装完成,其他插件通过vundle可以自动安装,vimrc配置文件内容如下截图:可点击此处参考其他人的.vimrc配置内容。
参考文章:https://www.jianshu.com/p/297802d16fb4?from=timeline&isappinstalled=0