如何安装vim自动补全插件YouCompleteMe(YCM)

  Vim是全平台上一个高度可拓展的编辑器。它自己只是一个简陋的编辑器,可是由于有各类插件而变得强大。使用Vim编写代码就难免遇到代码补全的问题。经常使用的代码补全插件有两个:日本人shougo写的neocomplete和前Google工程师Valloric写的YouCompleteMe。用的人比较多的仍是YouCompleteMe。YouCompleteMe被称为Vim最难配置的插件,当初配置好YouCompleteMe也是费了九牛二虎之力,印象中是花了整整一个晚上。回报也是显然的,支持定义跳转,变量跳转,超快的自动补全。下面进入正题。python

  首先是自动补全的机制,在个人理解里自动补全的实现是经过一个server来实现的。在YouCompleteMe里,server就是python。因此当你打开Vim,plug YCM,你能够在进程列表里发现一个python进程,这个进程其实就是扮演了server的角色。当你编辑代码时,server在文件目录里寻找关联的文件,对全文进行处理。而后用代码补全的方式呈现出来。git

  在YCM的github主页有各个系统的对应安装方式。最大的不一样是这个软件须要你本身去build,没错..以前历来没有作过这种操做因此那天晚上踩了无数坑。直到按照官网上的指导在命令行中运行如下两个步骤。github

cd ~/.vim/bundle/YouCompleteMe  #若是是vim-plug,应该是在~/.vim/plugins/YouCompleteMe
./install.py

  ok,一排排代码在terminal中滚动,build完成。打开vim却出现以下报错:vim

The ycmd server SHUT DOWN (restart with ':YcmRestartServer')

  百思不得其解,多方查找后得知缘由。YouCompleteMe对python有强依赖型,就像neocomplete对Lua有强依赖性。因此用来build的python版本必须当心翼翼。我在这里使用的是condapython,也就是虚拟环境中的python,无论build多少次都依然报错。bash

  最终我用了如下的方法解决:首先进入terminal,由于是conda环境因此前面有(base)表示基础虚拟环境,此时运行which python,能够看到当前python是conda环境安装的。app

(base) appledeMacBook-Pro-4:~ apple$ which python
/Users/apple/miniconda3/bin/python

ok,conda deactivate失能conda再运行是什么结果呢。编辑器

(base) appledeMacBook-Pro-4:~ apple$ conda deactivate
appledeMacBook-Pro-4:~ apple$ which python
/usr/bin/python
appledeMacBook-Pro-4:~ apple$ which python2
/usr/bin/python2
appledeMacBook-Pro-4:~ apple$ which python3
/usr/bin/python3
appledeMacBook-Pro-4:~ apple$ python3 --version
Python 3.7.3

  咱们能够看到,当前使用的python已是系统自带的python了,无论是brewpython仍是原生的python均可以使用。ui

  那么咱们按照官网说明cd到插件文件夹。不要运行 ./install.py 直接运行插件

python3 install.py

  等待build完成,再打开vim、没有报错。大功告成!命令行

  须要注意的是YouCompleteMe对Python依赖严重。一旦Vim版本或者python版本改变,照上述方法从新build一遍便可。

相关文章
相关标签/搜索