Ubuntu下vim配置:自动补全YouCompleteMe安装与配置

时间:2021-07-26 04:57:47

一、 前期工作与需求

  1. 良好的能连接github的网络(最近自己这边总感觉有点问题呢,能正常浏览github,但总是git不下来……只能*git)。
  2. 需要Vim版本>=7.3.598,索性装个vim7.4吧,安装方式如下:
sudo add-apt-repository ppa:fcwu-tw/ppa
sudo apt-get update
sudo apt-get install vim
ps:该ppa属于launchpad.net,墙内连接不太稳定,多次失败请*。

3. 安装Vim管理插件[Vundle](https://github.com/VundleVim/Vundle.vim)(可选,最好安装啦)。发现github上的地址改了,以前是gmarik,现在是VundleVim了(据说14年3月就改了……),然而这都不重要……装上就行了,依据[Vundle](https://github.com/VundleVim/Vundle.vim)上的说明正常安装就好,基本不会遇到问题,故在此不多加叙述。
4. 需要cmake版本>=2.8.11,ubuntu14.04及以上应该都满足了。老系统没达到的可去[这里](https://cmake.org/files/v2.8/cmake-2.8.11.tar.gz)下载,安装方式如下:

tar -xzvf cmake-2.8.11.tar.gz
cd cmake-2.8.11
./bootstrap --prefix=/usr --system-libs --mandir=/share/man --docdir=/share/doc/cmake-2.8.11
make
make test #optional, to test the results
sudo make install

ps:编译cmake时,可能会提示缺少一些lib,依据要求安装即可,有些lib名字比较类似,可能就差个版本数字号什么的,可要安装对了啊……(例,自己当时缺的:sudo apt-get install libcurl4-openssl-dev)

5、 好像没啥了,走起吧……

二、安装YouCompleteMe

  1. 在.vimrc中的Vundle管理中添加 Plugin ‘Valloric/YouCompleteMe’,不装Vundle的可手动通过git下载,git时记得加recursive参数,以前老忘,这次吃了大亏……
    使用Vundle的用户启动vim,输入:PluginInstall,就开始从github上下载YouCompleteMe了,整个ycm还是比较大的(大约190MB左右),估计要等好些时间。
  2. ycm是一个需要编译的插件,第一次安装时需要编译后才能使用,且以后每次更新都需要重新编译。安装及编译步骤如下:

预备操作

sudo apt-get install build-essential
sudo apt-get install python-dev python3-dev

想要C族语言的语义支持可如下执行编译(期间会下载一个clang-3.7,用于ycm内置使用,不推荐用系统的clang)

cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

不想要C族语言的语义支持则

cd ~/.vim/bundle/YouCompleteMe
./install.py

其他非C族语言获得语义支持的编译方法见官方说明

三、 配置YouCompleteMe

1、处理错误提示:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18’ not found (required by /home/username/.vim/bundle/YouCompleteMe/third_party/ycmd/libclang.so.3.7
需要增加一些编译器版本支持,找个libstdc++.so.6.0.18或末尾数字大于18的copy进去,或者安装gcc-4.8及以上时就可以自动扔个高级版本进去,最后重新ln -s一下。
Ps:还有如下添加ppa的方法,然后就可以通过apt-get安装新版lib了。命令如下(最后应该也要手动ln -s):
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get install libstdc++6-4.8-dbg

2、.ycm_extra_conf.py,如果想要用YCM自带的,就应该在.vimrc中添加

let g:ycm_global_ycm_extra_conf = '/home/username/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

不想用自带的,则需要在你编辑的文件的同目录下自行放置一个.ycm_extra_conf.py文件,否则语义支持将提示出错。

3、在语义支持功能使用正常的情况下,实现对标识符跳转到其定义、声明的功能。其命令为:YcmCompleter GoTo,可在.vimrc中添加

nnoremap <C-g> :YcmCompleter GoTo<CR>

与ctrl-o正好配合使用。

其他配置详见官方说明

——————————————————————————————————

如遇问题,欢迎交流。
如有错误,请大家指正。