1. YouCompleteMe是一款强大的Vim插件,它可以实现代码的自动补全,跳转到定义等功能,并且支持java, python, go, c家族等多种语言。 网址: https://github.com/Valloric/YouCompleteMe

  2. 其github的网站上详细地给出了安装该插件的步骤,但是由于该插件所依赖的软件和库比较多,稍有出入就会出错,所以该插件也被称为史上最难安装VIM插件。经过了一天在CentOS6.8系统上痛苦的折磨之后,我终于放弃了CentOS6.8,转投到fedora27上重新折腾(其实是因为我把CentOS搞崩了)。这次的安装还算比较顺利。下面记录一下安装过程。

  3. 首先要检查VIM的版本,目前需要大于7.4.1578,fedora27的vim版本是8.0,通过。如果你的系统是低于要求版本的,需要升级vim.

  4. 跟随官网推荐,使用Vundle这个vim插件管理器来安装YouCompleteMe,需要先安装Vundle. 按照这里的方法基本上就没有问题:https://github.com/VundleVim/Vundle.vim#about 需要注意的是Vundle官网给出的.vimrc的例子中包含了很多额外的插件,我们需要装的只有两个就是:Plugin 'VundleVim/Vundle.vim',和Plugin 'Valloric/YouCompleteMe', 我们要确保这两行被添加在.vimrc文件中,其他是都是可选的。如果是小白,最好先把其他的都删掉以免不必要的麻烦。其他可选的步骤都可以先略去。

5.等待漫长的时间后------也许很快,我的就很快,不到一分钟,是因为一开始就出错了。 报错:YouCompleteMe unavailable: no module named xxx, 具体模块名忘记了。 这时参考网站:https://www.jianshu.com/p/d908ce81017a?nomobile=yes 中'通过git安装YCM'的步骤,同时也参考YCM官网的'Full Installation Guide'中的说明: If you don't install YCM with Vundle, make sure you have run git submodule update --init --recursive after checking out the YCM repository (Vundle will do this for you) to fetch YCM's dependencies. 这里指出如果没有通过Vundle来YCM安装的话,需要先git clone YCM, 再执行git submodule update --init --recursive 这条命令来获取YCM依赖包。 我虽然用了Vundle安装YCM, 但是貌似没有安装成功,那就算是满足 ‘没有通过Vundle来安装’ 这个条件吧。照着执行了git submodule update命令,大约十几分钟后,执行完成,没有报错。打开vim,也没有先前的错误,说明已经安装YCM插件。 还要说明的是我并没有按照简书上面的步骤安装libclang, 也没有编译ycm_core库,我仅仅是git submodule update,然后就执行第6步了。

  1. 到此,可以按照YCM官网后续步骤操作了,依次为安装开发工具和cmake, 安装python headers, 编译YCM. 我用的是没有c-family语义支持的。都比较顺利,没有出现过在CentOS中出现的升级glibc,升级gcc等问题。

  2. 打开vim编辑一个python文件,发现已经可以补全代码。Great job !