在用vim编写C语言代码时,可以利用Youcompleteme插件自动补全代码,实验环境在虚拟机中进行,以下为安装步骤:
1.下载ubuntu-16.04.3-desktop-amd64.iso(LTS)系统镜像在Vmware中安装
出现错误:安装虚拟机时出现无法获取 vmci 驱动程序版本:句柄无效
解决方案:http://jingyan.baidu.com/article/a3a3f811ea5d2a8da2eb8aa1.html
2.在终端中安装vim
~$sudo apt-get install vim-gtk
注意: github上的源码Youcompleteme的作者声明 Vim 7.4.1578 with Python 2 or Python 3 support,下图可知当前版本为vim7.4.1689
安装vim后查看vim对python的支持
~$vim –version | grep python
可以看到对python3支持没有python2支持,如果需要换成python2支持可以输入下列命令安装
~$sudo apt-get install vim-nox-py2
现在vim可以用python2或者python3,输入如下命令选择编号即可。
~$sudo update-alternatives –config vim
3.安装官方文档上的cmake和python-dev,这里的cmake是为了编译后面的clang
~$sudo apt-get install build-essential cmake
~$sudo apt-get install python-dev python3-dev
4.Yundle方式安装Youcompleteme
首先安装git
~$sudo apt-get install git
然后安装vim的扩展管理器Vundle,利用Vundle来安装YCM
~$git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
~$mv ~/.vimrc ~/.vimrc.back #备份默认的vim配置文件
~$vim ~/.vimrc #创建新的vim配置文件,键入如下内容
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
call vundle#end()
filetype plugin indent on
保存后,在命令行下输入如下命令,就会开始下载Youcompleteme,可能会下载一段时间
5.正式安装Youcompleteme,运行自带的安装脚本即可,如要添加C系语言支持可以执行下述命令
~$cd ~/.vim/bundle/YouCompleteMe
~$./install.py --clang-completer
#这里的- -符号是连起来的,为了显眼在文档中加了空格
#这里也可以手动下载安装clang,然后使用系统--system-libclang安装的方式
~$sudo apt-get install clang
~$./install.py --clang-completer --system-libclang
出现错误:如下图安装过程停止
原因:主要原因是虚拟机安装后分配的1G内存不足
解决:可以临时使用交换分区来解决,在终端键入如下命令
~$sudo dd if=/dev/zero of=/swapfile bs=64M count=16
~$sudo mkswap /swapfile
~$sudo swapon /swapfile
#在编译完成后释放交换空间
~$sudo swapoff /swapfile
~$sudo rm /swapfile
下图为安装成功的过程图:
6.最后是配置YCM,在~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/下可以找到.ycm_extra_conf.py这个文件,可以每次使用时把其复制到当前目录下,也可以在~/.vimrc中进行配置。
let g:ycm_global_ycm_extra_conf = ‘~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py’
"配置全局路径
let g:ycm_confirm_extra_conf=0
"每次直接加载该文件,不提示是否要加载
同时对.ycm_extra_conf.py进行修改,在flags下添加内容如下图所示:
并注释到图中所示内容:
7.YCM自动补全插件展示部分