Vim 安装 YouCompleteMe
Vim 下的自动补全,最好的工具莫过于 YouCompleteMe,官方文档在这里 http://valloric.github.io/YouCompleteMe/
安装稍显复杂,以下记录我的过程。
1. 安装 Vundle
(这里顺带就把 YouCompleteMe 下载了)
Vundle 是 Vim 下的一个插件管理器,如果之前你配置 Vim 是手动放置 xxx.vim 配置文件到相应目录,那么现在你要安装 Vundle, 因为 YouCompleteMe 是基于 Vundle 安装的,
Vundle 的 github 地址: https://github.com/VundleVim/Vundle.vim
- git 克隆插件 $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- 添加如下内容到 ~/.vimrc 文件最前面,
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For Vundle Start
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" Install YouCompleteMe
Plugin 'Valloric/YouCompleteMe' " 注意,这就是要安装的插件 YouCompleteMe
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For Vundle End
保存关闭。
- 启动 Vim,执行命令 :PluginInstall 将出现如下安装画面,( YouCompleteMe 插件较大,请耐心等待)

2. 编译 YouCompleteMe
- 安装相关工具
$ sudo apt-get install build-essential cmake
- 安装相关 Python 库
$ sudo apt-get install python-dev python3-dev
- 编译 (为支持 C,C++,Python 智能补全,添加选项 --clang-completer)
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
注: 为支持其他语言,比如 Javascript,Go 等,要首先安装相应的工具,具体参见官方文档。
3. 设置 .vimrc
“ 配置默认的 .ycm_extra_conf.py 路径
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py'
注:当有新库加入时,需要更新此文件,例如,我要支持 boost 的补全,则要加入 boost 头文件路径 /usr/local/boost_1_67_0,加到 flags 的最后即可,
flags = [ ... # for boost complete
'-isystem',
'/usr/local/boost_1_67_0'
]
4. 使用中的问题
- 补全功能可用,但是会有恼人的信息,

我当前安装的 gVim 版本是 7.4.52, 根据 YouCompleteMe 官网的建议,升级到 7.4.314 以上可解决这个问题,于是,
# add-apt-repository ppa:pi-rho/dev
# apt-get update
# apt-get install vim-gnome (重装即可升级)
升级后,问题解决。
注: 补全时,当弹出 tip 窗口,按 Tab 来 cycle 可选项。
另, Centos 升级 gvim 到 8.x 版本见:https://www.cnblogs.com/gaowengang/p/10546815.html
对于 Ubuntu 18.04 的 workaround 方法
因为我之前一直用 Ubuntu 14.04 和 CentOS 7,这两个操作系统默认的 gcc 版本是 4.8,我在这两个系统下完成了对 gvim 的各种配置(包括 YouCompleteMe 的配置),并且各项功能都调好了。
因项目需要,在升级系统到 Ubuntu 18.04 后,为方便起见,我把旧系统的 .vimrc 和 .vim 拷贝到新系统的 home 目录下, 并调整 YouCompleteMe 配置文件的内容,使其指向新系统的 c++ 头文件目录,但是却不能实现 c++ 的自动补全。目前怀疑和 Ubuntu 18.04 的 gcc 和 g++ 版本有关,新系统默认的版本是 7.4。
workaround 方法是:安装 gcc 4.8 ( $ sudo apt-get install gcc-4.8 ) 和 g++ 4.8 ( $ sudo apt-get install g++-4.8 ),并调整 YouCompleteMe 配置文件,使其指向 c++ 4.8 的头文件目录。
完。
Vim 安装 YouCompleteMe的更多相关文章
- vim安装YouCompleteMe 插件
要安装YouCompleteMe ,vim须支持python.看是否支持,可以在vim中:version 查看, 如果python前有+号,就是支持,减号就是不支持. 如果不支持,需要以编译安装方式重 ...
- 给vim安装YouCompleteMe
要安装YouCompleteMe ,vim须支持python.看是否支持,可以在vim中:version 查看, 如果python前有+号,就是支持,减号就是不支持. 如果不支持,需要以编译安装方式重 ...
- UBuntu14.04 --vim安装YouCompleteMe插件
说明 我电脑的系统参数(用 uname -a命令查看)如下: Linux avyn-Lenovo --generic #-Ubuntu SMP Tue Mar :: UTC i686 i686 i68 ...
- Vim+Vundle+YouCompleteMe 安装
这段时间在Centos 7上开发c++程序,想为vim安装YouCompleteMe插件,参照几个博客无果,果断上官网找解决方案.功夫不负苦心人,终于搞定. 学习东西还是要多上官网. 下面送上本次的收 ...
- vim 安装
Ubuntu 16.04 下 Vim安装及配置 默认已经安装了VIM-tiny linuxidc@linuxidc:~$ locate vi | grep 'vi$' |xargs ls -al lr ...
- Ubuntu16.04安装vim插件YouCompleteMe
原文 1 下载 git clone --recursive git://github.com/Valloric/YouCompleteMe 如果执行该命令没报错, 就ok了. 但是中途有可能会断掉, ...
- 解决安装YouCompleteMe与Vim版本不兼容问题
用vim 7.4.4版本装YouCompleMe的时候提示这样的信息: YouCompleteMe unavailable: requires Vim 7.4.1578+.明明版本比它要求的还高,居然 ...
- Vim中YouCompleteMe插件安装
背景 YouCompleteMe需要使用GCC进行编译,然而Centos 6.7默认的GCC版本太低,所以需要使用devtools-2,用来安装多个版本GCC手动编译安装GCC的坑简直不要太多(类似于 ...
- 【转】ubuntu 12.04 下 Vim 插件 YouCompleteMe 的安装
原文网址:http://www.cnblogs.com/jostree/p/4137402.html 作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree ...
随机推荐
- POJ3734 Blocks(生成函数)
题意 链接 长度为\(n\)的序列,用红黄蓝绿染色,其中红黄只能是偶数,问方案数 Sol 生成函数入门题 任意的是\(e^x\),偶数的是\(\frac{e^x + e^{-x}}{2}\) 最后化完 ...
- Session过期,跳出iframe框架页显示会话过期页面
web开发中经常会有这种情况,在一个主页面中包含侧边导航菜单和iframe,点击菜单项,对应页面会在iframe中显示,整个页面不会刷新.但是如果设置了会话Session,在会话过期后再操作会自动re ...
- 2018-08-22 为中文API的简繁转换库添加迟到的持续集成
前两天在V2EX偶遇反馈帖第一次见以汉字命名的 Java 类 - V2EX, 于是复习了一下半年多没碰的项目program-in-chinese/zhconverter. 前文介绍了发布过程: 在Ma ...
- Unity3D手机斗地主游戏开发实战(04)_出牌判断大小
之前我们实现了叫地主.玩家和电脑自动出牌主要功能,但是还有个问题,出牌的时候,没有有效性检查和比较牌力大小.比如说,出牌3,4,5,目前是可以出牌的,然后下家可以出任何牌如3,6,9. 问题1:出牌检 ...
- 【最新】Android使用jenkins全自动构建打包-Windows版本(Android,Jenkins,360加固,Email,QRcode,参数构建,蒲公英)
Android打包喝咖啡系列(Windows版) 这篇博客主要讲述的内容: 1.windows上部署Jenkins https://jenkins.io 2.基于SVN或Git https://git ...
- VR技术了解(作业)
增强现实技术 概念:将现实世界和虚拟世界无缝集成的新技术. 突出特点: 真实世界与虚拟的信息集成 实时交互 三维空间中增添定位虚拟物 应用 医疗领域:医生可以利用增强现实技术,轻易地进行手术部位的精确 ...
- Nginx 负载均衡4种模式
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80541464 本文出自[赵彦军的博客] 4 种负载均衡算法 upstream 支持 ...
- pyHook和pythoncom的安装
pyHook包为Windows中的全局鼠标和键盘事件提供回调.Python应用程序为用户输入事件注册事件处理程序,例如鼠标左键,鼠标左键,按键等,并设置键盘和/或鼠标挂钩.底层C库报告的信息包括事件的 ...
- tesseract安装及问题处理
错误1 pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your p ...
- 【MM系列】SAP MM 非限制/可用库存
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM 非限制/可用库存 ...