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

Vim自动补齐Python-编译安装YouCompleteMe
如上图,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配置内容。

Vim自动补齐Python-编译安装YouCompleteMe

Vim自动补齐Python-编译安装YouCompleteMe

Vim自动补齐Python-编译安装YouCompleteMe

参考文章:https://www.jianshu.com/p/297802d16fb4?from=timeline&isappinstalled=0