前言

Valloric/YouCompleteMe可以说是vim安装最复杂的插件之一,但是一旦装好,却又是非常好用的。YouCompleteMe简称ycm

在安装折腾的过程中,我再一次的体会到,除了官网教程,百度上的教程都是辣鸡,都是坑!

安装准备:

1.确保已经安装好build-essential 和 cmake 。ycm是编译型补全插件,这两个工具是编译ycm用的。

sudo apt-get install build-essential cmake

2.确保已经安装好了python-dev 和 python3-dev

sudo apt-get install python-dev python3-dev

3.下载ycm

我们使用vundle插件下载ycm。vundle是管理vim插件的vim插件,安装很简单,安装vundle的教程另附了,大家也可以自行上网搜索。

在vimrc里增加如下语句,让ycm添加到vundle的管理列表中:

Bundle 'Valloric/YouCompleteMe'
Bunlde 'SirVer/ultisnips'
Bundle 'honza/vim-snippets'

注意!!这里有2个天坑, 'SirVer/ultisnips' 和 'honza/vim-snippets' 这两个插件在ycm安装文档中没有说明的!我是去了ultisnips的git上才看到。如果不安装,就会在进入vim的时候报OnBufferRead的错!

然后在vim里执行,下载并安装列表中的插件。当然了,这里包含了我们刚增加的ycm。这个过程比较漫长,可以需要十来分钟,耐心等待吧。

:BundleInstall

4.编译ycm

上面的步骤只是把ycm下载下来了,但是还没有编译。使用如下命令编译ycm。以下的例子,只添加对C++补全的支持。

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

对其他语言的支持有,大家可以按需求添加。如果想全部语言都安装,可以使用./install.py --all

C# support: install Mono and add --omnisharp-completer
Go support: install Go and add --gocode-completer
TypeScript support: install Node.js and npm then install the TypeScript SDK with npm install -g typescript.
JavaScript support: install Node.js and npm and add --tern-completer
Rust support: install Rust and add --racer-completer

5.配置工程

如果上面顺利的话,你已经完成了ycm的安装。最后在vimrc中添加如下快捷键方便使用。

let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"

对于每一个工程,我们可以自定义.ycm_extra_conf.py ,这个文件可以定义自动补全的各种细节,例如搜索什么目录等等,都可以在里面进行设置。

ycm是依赖clang实现补全的,如果需要c++补全,需要在.ycm_exrea_conf.py文件中添加响应的c++文件路径。

c++文件路径详情可以通过以下命令查询

echo |clang -std=c++11 -stdlib=libc++ -v -E -x c++ -

以下是在.ycm_exrea_conf.py添加内容的例子

'-isystem','/usr/local/include',

'-isystem','/usr/lib/gcc/x86_64-linux-gnu/4.8/include',

'-isystem','usr/include/x86_64-linux-gnu',

'-isystem','usr/include',

vim自动补全插件YouCompleteMe的更多相关文章

  1. 【转】Vim自动补全插件----YouCompleteMe安装与配置

    原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assis ...

  2. Vim自动补全插件----YouCompleteMe安装与配置

    Vim自动补全插件----YouCompleteMe安装与配置 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用 ...

  3. CentOS7 Vim自动补全插件----YouCompleteMe安装与配置

    最近刚装了新系统CentOS7,想要把编码环境配置一下,使用Vim编写程序少不了使用自动补全插件,我以前用的是neocomplcache+code_complete+omnicppcomplete.但 ...

  4. 如何安装vim自动补全插件YouCompleteMe(YCM)

    Vim是全平台上一个高度可拓展的编辑器.它本身只是一个简陋的编辑器,但是因为有各种插件而变得强大.使用Vim编写代码就不免遇到代码补全的问题.常用的代码补全插件有两个:日本人shougo写的neoco ...

  5. vim自动补全插件YouCompleteMe的安装及配置

    原文地址: http://blog.csdn.net/shixuehancheng/article/details/46289811

  6. Vim自动补全神器–YouCompleteMe

    YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器.也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么.在Vim被程序员所使用后,其慢慢的被肩负了与IDE ...

  7. VIM自动补全插件 - YouCompleteMe--"大神级vim补全插件"

    VIM自动补全插件 - YouCompleteMe 序言 vim 之所以被称为编辑器之神多半归功于其丰富的可DIY的灵活插件功能,( 例如vim下的这款神级般的代码补全插件YouCompleteMe) ...

  8. Windows 10环境安装VIM代码补全插件YouCompleteMe

    Windows 10环境安装VIM代码补全插件YouCompleteMe 折腾一周也没搞定Windows下安装VIM代码补全插件YouCompleteMe,今天在家折腾一天总算搞定了.关键问题是在于P ...

  9. Vim自动补全神器–YouCompleteMe

    一.简介 YouCompleteMe是Vim的自动补全插件,与同类插件相比,具有如下优势 1.基于语义补全 2.整合实现了多种插件 clang_complete.AutoComplPop .Super ...

随机推荐

  1. 使用Connetion的属性RetainSameConnection

    在SSIS的组件中,很多都会连接到数据库进行操作,Connection有一个属性RetainSameConnection,默认值是False,控制着连接的打开和关闭的时机. 1,如果Connectio ...

  2. Orlion个人博客 | 全栈工程师之路-www.orlion.ga

    自己用wordpress+bootstrap搭建了一个博客,网址http://www.orlion.ga,用来记录博主学习和成长,主要关注JAVA.LANMP.前端与客户端(Android).算法与数 ...

  3. 关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要

    系统环境:windows2008 X64 IIS版本:iis7 oracle客户端版本:11g,另外装了32位的客户端. 网站.net framework版本: 4.0 目前状况,IIS可以正常运行, ...

  4. vc++用ADO方式连接oracle问题

    今天装了个oracle客户端,准备写个访问远程oracle的程序.用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错: 从提示可以看出是没有找到OraOLEDBup ...

  5. 这10道javascript笔试题你都会么

    1.考察this var length = 10; function fn() { console.log(this.length); } var obj = {   length: 5, metho ...

  6. android 中resources管理

    主要存在于res/value文件夹中 定义: dimen.xml:主要用于设置像素默认值 <resources> res/values/dimens.xml <dimen name= ...

  7. 文本框只读属性,disabled不能提交

    设置文本框和文本域只读的时候用到disabled="disabled",结果后台获取不到,后来想起这个不会提交,应该用readonly

  8. C语言学习014:结构化数据类型

    struct的基本使用 #include <stdio.h> //定义数据结构 struct fish{ const char *name; const char *species; in ...

  9. Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.

    调试网站时,异常出现:Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive. S ...

  10. sql 内连接和外链接

    如表     -------------------------------------------------     table1 | table2 |     ----------------- ...