前言
最近钟情于使用 VIM
来学习,所以开始探索各种插件,不出意外地便认识了代码补全的神器插件 —— YCM (YouCompleteMe)
,于是开始安装,但是安装过程中,出现了各种各样的问题,并且在不科学上网的情况下,其实这个插件的安装在国内安装是很难受的,不过经过几番探索,还是成功安装了,以下记录安装过程,以防忘记。
Github的镜像源
在很多情况下,从 Github
上克隆仓库是一件很痛苦的事情,那厮磨般让人焦急的速度,实在是让人咬牙切齿,对于这样,网上也有很多办法,不过我更喜欢用镜像站点的方式,直接用 github.com.cnpmjs.org
替换克隆仓库连接中的 github.com
,提神网络下载速度。而这对于我们安装 YCM
是很有用的。
安装Vundle插件
Vundle
是一款Vim插件管理插件,建议安装!
$ cd ~ # home dir
~$ git clone https://github.com.cnpmjs.org/VundleVim/Vundle.vim ~/.vim/bundle/Vundle.vim
命令解释: 使用git
克隆Vundle.vim插件仓库到本地用户目录下的.vim/bundle/Vundle.vim
文件夹,如果没有这个目录,会自动创建。
Vundle插件配置
Vundle的官方仓库 : VundleVim
使用 Vim
打开 .vimrc
配置文件 - 如果不存在,那么就创建一个新的,记住要在用户目录下创建,也就是 ~/
.
~$ vim .vimrc
set nu
set tabstop=4
" vundle config
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin indent on
保存文件并退出
再次进入 Vim
, 在 Vim
的命令行模式下,也就是初进Vim
的时候的模式,键入命令安装插件(不要把 :
漏掉了)
:PluginInstall
开始安装 YouComPleteMe(YCM)
为系统装上 YouCompleteMe
安装所需要的相关工具
- 安装
Python3-dev
~$ sudo apt-get install python3-dev
- 安装
cmake
~$ sudo apt-get install cmake
~$ cmake --version # check 检查
- 安装
nodejs
~$ sudo apt-get install nodejs
~$ nodejs --version # check 检查
- 安装
go
~$ sudo apt-get install golang-go
~$ go version # check 检查
- 安装
npm
~$ sudo apt-get install npm
~$ npm --version # check 检查
- 安装
mono-complete
~$ sudo apt-get install mono-complete
~$ mono --version # check 检查
克隆 YouCompleteMe
仓库到本地
~$ git clone https://github.com.cnpmjs.org/ycm-core/YouCompleteMe ~/.vim/bundle/YouCompleteMe
解决完整性依赖 ( 安装 Submodule
[子模块] )
~$ cd ~/.vim/bundle/YouCompleteMe
~/.vim/bundle/YouCompleteMe$ git submodule update --init --recursive
到了这一步,就会出现第一个问题,下载速度巨慢!!!
如果你在安装子模块的时候类似地卡在这种地方
Cloning into '/root/.vim/bundle/YouCompleteMe/third_party/requests_deps/requests'...
一直克隆不下来,八成就是网络原因,但是国内在不科学上网的情况下这样的等待是漫长的,所以我们可以手动下载我们的子模块:
~/.vim/bundle/YouCompleteMe$ git clone https://github.com.cnpmjs.org/psf/requests.git third_party/requests_deps/requests
然后继续安装子模块,继续解决依赖:
~/.vim/bundle/YouCompleteMe$ git submodule update --init --recursive
如果又在哪个包卡住了,那么就再手动下载。
这个时候你可能会问:“怎么确定这个子模块在Github上的位置?和在我们 YCM 插件文件夹中的位置?”
那么我们可以通过 YCM
的原仓库找到答案:
那么这个时候,你就可以通过这个链接(类似图中标红)找到这个子模块的原仓库,然后从这个原仓库克隆到本地目标文件夹,而本地目标文件夹就是前面你卡住的那段命令的的路径,也就是 Clone into
后面的那个路径,即:
~/.vim/bundle/YouCompleteMe/third_party/requests_deps/requests
解决完全部依赖之后,就可以开始编译安装 YouCompleteMe
~/.vim/bundle/YouCompleteMe$ python3 install.py --clangd-completer
命令解释: 使用python3
解释器解释install.py
文件,并添加--clangd-completer
参数,参数代表只添加c/c++
补全
至此,你的 YCM
插件不出意外已经安装好了,而接下来就是进入 .vimrc
文件配置插件。
首先你要找到 .ycm_extra_conf.py
这个文件,这个文件一般在 YouCompleteMe/third_party/ycmd/
路径之下,使用:
~/.vim/bundle/YouCompleteMe/third_party/ycmd/$ ls -a
可以查看到这个文件,然后把这个文件放到你喜欢的地方,或者就在这里都可以,我是移动到了用户目录下,然后开始配置.vimrc
文件
let g:ycm_key_invoke_completion = ''
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' " 你的文件路径
" 代码提示框的高亮配置
highlight PMenu ctermbg=red ctermfg=15
highlight PMenuSel ctermbg=14 ctermfg=16
效果图
结语
有任何问题欢迎大家指正!