YouCompleteMe 是一个很智能代码提示插件
安装完成后的整体效果:
安装前环境准备:
-
最新版的Vim(7.3.584+),编译时添加+python标志(已经安装的可以通过vim --version查看)
-
cmake(ubuntu可以通过sudo apt-get install cmake,CentOS 可以 使用 sudo yum install cmake)
-
安装vundle插件,用于安装管理vim的插件
安装:
-
vim版本太低
更新 vim版本:
1.首先安装 python环境,如果没有
sudo yum upgrade
sudo yum install python-devel
2.安装 支持包
yum install ncurses-devel
#从 github 上下载 vim
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master
cd src/
#配置 vim
./configure --with-features=huge -enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config
#注意点:这里的 --with-python-config-dir=/**** 的内容要根据自己的主机
#上的 python2.7下的 config 所在路径来,最终是需要这个 config 文件
sudo make
sudo make install
export PATH=/usr/local/bin:$PATH
输入 图片中的命令 查找 config 所在目录
这些命令执行完之后,使用 vim a.c
会发现还是提示 版本太低
原因可能是你没有卸载原有的版本,此时修改 vim 的链接源为刚刚安装的 vim 就再 打开 vim 就OK
alias vim='/usr/local/bin/vim'
2.下载编译 ycm
1.下载YouCompleteMe到 家目录的 ~/.vim/bundle/ 目录下
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
2.如果没有 .vimrc 创建,如果有,则 添加如下信息
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
######### 添加 Plugin 插件 处 #####
Plugin 'gmarik/Vundle.vim'
######### 添加 Plugin 插件 处 #####
call vundle#end()
filetype plugin indent on
使用vim打开.vimrc,后输入 :PluginInstall 命令
完成后在 'Plugin 'gmarik/Vundle.vim’的下一行输入
'Plugin ‘Valloric/YouCompleteMe’,保持后退出
注意:此时出现 错误 提示无法输入
解决方法:在上一个 步骤 中添加 这句话
4.最为重要的一步
执行
python2 ./install.py --clang-completer
如果一次不行,换换网络,再执行
我第一次安装遇到的问题:
问题出现在 安装 ycm 出现错误, 再次 python2 ./install.py --clang-completer ,或寻找原因:
在 vimplus 目录下可以找到 README.md 文件,里面详细描述 了 YCM 的安装过程
安装完成后,若 打开 vim 后 ,输入 :PluginInstall 命令,得到图片结果,则:
至此,安装成功!!!
安装完成之后再 :路径根据自己的软件确定
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/
最后再 设置添加下列 到 .vimrc
let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py' "设置全局配置文件的路径
let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
let g:ycm_confirm_extra_conf=0 " 打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_key_invoke_completion = '<C-a>' " ctrl + a 触发补全
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
---------------------