0x00. 简介

YouCompleteMe号称Vim的自动补全神器,YouCompleteMe: a code-completion engine for Vim,该项目在github的地址:YouCompleteMe

0x01. Requirements

Vim is at least 7.3.584 and it has support for python2 scripting.

0x02. 用Vundle来安装YCM(YouCompleteMe)

安装其实非常简单,在.vimrc文件中加入语句 Bundle 'Valloric/YouCompleteMe' 即可,保存,退出,然后再次打开Vim,normal模式下输入 :BundleInstall 即开始下载。如下图:

也可以切换至 .vim/bundle 下手动下载,输入如下命令:

git clone https://github.com/Valloric/YouCompleteMe.git

手动下载完后检查仓库的完整性,切换到 YouCompleteMe 目录下,输入如下命令:

git submodule update --init --recursive

0x03.  下载最新的libclang

Clang是一个开源的编译器,它可以编译C/C++/Objective-C/Objective-C++. Clang提供的libclang库是用来给YCM为这些语言提供语义补全的引擎。和YCM配合的libclang版本必须 >=3.6 ,但理论上也是可以和 3.2+ 版本的libclang配合使用的。下载最新的libclang如下:

sudo apt-get install libclang-dev

0x04. 编译YCM需要的ycm_support_libs库

首先要确保你已经安装类cmake。如果没有,请按如下安装:

sudo apt-get install cmake

其次需要确保你有一些 Python 头文件。如果没有,请按如下安装:

sudo apt-get install python-dev

接下来,创建新的文件夹 ycm_build 进行编译,如下:

 cd ~
mkdir ycm_build
cd ycm_build

不需要语义补全的童鞋们,直接执行下面的语句:

cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

然并卵啊,俺们是需要语义补全的呀~,那么请先去 llvm.org 下载最新的 clang+llvm 包,然后把它们解压到 ~/ycm_temp/llvm_root_dir 文件夹下。接着,执行如下语句:

cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

再接着要开始编译 ycm_support_libs 库,执行如下语句:

make ycm_support_libs

这样就编译完了。

0x05. 配置YCM

本渣开始以为编译完了就完事了,谁知道再次打开Vim,它来了这么一句:No .ycm_extra_conf.py file detected, so no compile flags are available. Thus no semantic support for C/C++/ObjC/ObjC++. 哦呵呵呵~

~/.vim/bundle/YouCompleteMe 文件夹下一看。。。没有 cpp !没有 cpp !没有 cpp !

咋办?新建呗。。。然后把 YCM‘S own .ycm_extra_conf.py 文件拷贝到相应的文件夹下。

接着再次打开 .vimrc 配置YCM,如下:

"YouCompleteMe
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'

之后再次打开Vim即可。

为了补全,我们还需要在 .ycm_extra_conf.py 文件中进行配置,如下:

 '-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/4.9.2',
'-isystem',
'/usr/include',
'/usr/include/x86_64-linux-gnu/c++',

0x06. Summary

城里人真会玩:)

自己再配置配置可以起飞了~

Ubuntu15.04YouCompleteMe插件安装的更多相关文章

  1. [Android Studio]SQLScout插件安装破解

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5972138.html [Android Studio]SQLS ...

  2. elasticsearch5.0及head插件安装

        这个瞎jb整了半天.准备把es2.4升级到5.0,结果老报错 环境:centos6.5+es2.4是ok的换成es5就出毛病.也不能说啥 ,我用的是最新的 源码解压启动时候报错,具体错误for ...

  3. subtext3插件安装

    1.启用Package Control,利用它进行插件安装: 启用方法:菜单栏-view-show console 在弹出的输入框内,输入以下代码,按回车,稍后会出现package control安装 ...

  4. webapp应用---cordova.js 3.7.0插件安装总结

    今天是2014年的最后一天,年终总结什么的就不写了.记录一下今天的工作内容.如果不知道phoneGap,那么就不需要往下看了,phoneGap现在已经叫cordova了,叫什么不重要,重要的是它对we ...

  5. 分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)

    在安装插件的过程中,尤其是安装Marvel插件遇到了很多问题,要下载license.Marvel-agent,又要下载安装Kibana 版本需求 Java 7 or later Elasticsear ...

  6. Sublime text3 常用插件 安装

    1 安装插件前的准备工作 首先确保你的Sublime Text3编辑器为官方版(非破解版),建议下载官网的便携版本(好处多多). 然后安装插件管理工具(Package Control) 1.1 打开S ...

  7. HttpFox插件安装和打开教程

    HttpFox插件安装教程 1.打开火狐浏览器,选择右上角的打开菜单 2.选择附加组件,在获取附件组件栏中搜索HttpFox插件 3.找到HttpFox插件选择安装 4.安装完成后选择左边的扩展栏确认 ...

  8. eclipse maven plugin 插件 安装 和 配置

      离线插件 点击下载离线安装包:eclipse-maven-plugin.zip ( for eclipse helios or higher ) .解压缩到任意目录(如这里的plugins目录): ...

  9. Eclipse插件安装方式及使用说明

    拷贝安装方式 1.通过ECLIPSE_HOME\plugins安装 在eclipse的主目录ECLIPSE_HOME, 比如在我的机器上安装的目录是:ECLIPSE_HOME有一个plugins的目录 ...

随机推荐

  1. iOS 之项目中遇到的问题总结

    昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...

  2. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  3. JSON.parse 与 eval() 对于解析json的问题

    1.eval()与JSOn.parse的不同 eval() var c = 1; //全局变量 var jsonstr1 = '{"name":"a",&quo ...

  4. 如何修改MySQL字符集

    首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例.单个 ...

  5. ASP.NET Core 中文文档 第三章 原理(12)托管

    原文:Hosting 作者:Steve Smith 翻译:娄宇(Lyrics) 校对:何镇汐.许登洋(Seay) 为了运行 ASP.NET Core 应用程序,你需要使用 WebHostBuilder ...

  6. 【中文分词】二阶隐马尔可夫模型2-HMM

    在前一篇中介绍了用HMM做中文分词,对于未登录词(out-of-vocabulary, OOV)有良好的识别效果,但是缺点也十分明显--对于词典中的(in-vocabulary, IV)词却未能很好地 ...

  7. 把UI图里的小图标制作成icon font

    一个交互比较多的UI图里面可能会有很多小图标,一般可用sprites图将多个小图标弄成一张大图,或者其它的办法,各种方法的比较可参见博主的另外一篇博客使用css3新属性clip-path制作小图标,本 ...

  8. Navisworks Addin 插件集成

    调用Navisworks的 Api . 我这里是基于.NET 开发的. 我主要是尝试着获取一下工程量的API.不过还在研究. 插件的启动入口. //插件描述 [PluginAttribute(&quo ...

  9. 【Java每日一题】20161226

    package Dec2016; public class Ques1226 { static{ num = 1; } public static int num = 2; public static ...

  10. 周末惊魂:因struts2 016 017 019漏洞被入侵,修复。

    入侵(暴风雨前的宁静) 下午阳光甚好,想趁着安静的周末静下心来写写代码.刚过一个小时,3点左右,客服MM找我,告知客户都在说平台登录不了(我们有专门的客户qq群).看了下数据库连接数,正常.登录阿里云 ...