vim自动补全插件YouCompleteMe
前言
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的更多相关文章
- 【转】Vim自动补全插件----YouCompleteMe安装与配置
原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assis ...
- Vim自动补全插件----YouCompleteMe安装与配置
Vim自动补全插件----YouCompleteMe安装与配置 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用 ...
- CentOS7 Vim自动补全插件----YouCompleteMe安装与配置
最近刚装了新系统CentOS7,想要把编码环境配置一下,使用Vim编写程序少不了使用自动补全插件,我以前用的是neocomplcache+code_complete+omnicppcomplete.但 ...
- 如何安装vim自动补全插件YouCompleteMe(YCM)
Vim是全平台上一个高度可拓展的编辑器.它本身只是一个简陋的编辑器,但是因为有各种插件而变得强大.使用Vim编写代码就不免遇到代码补全的问题.常用的代码补全插件有两个:日本人shougo写的neoco ...
- vim自动补全插件YouCompleteMe的安装及配置
原文地址: http://blog.csdn.net/shixuehancheng/article/details/46289811
- Vim自动补全神器–YouCompleteMe
YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器.也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么.在Vim被程序员所使用后,其慢慢的被肩负了与IDE ...
- VIM自动补全插件 - YouCompleteMe--"大神级vim补全插件"
VIM自动补全插件 - YouCompleteMe 序言 vim 之所以被称为编辑器之神多半归功于其丰富的可DIY的灵活插件功能,( 例如vim下的这款神级般的代码补全插件YouCompleteMe) ...
- Windows 10环境安装VIM代码补全插件YouCompleteMe
Windows 10环境安装VIM代码补全插件YouCompleteMe 折腾一周也没搞定Windows下安装VIM代码补全插件YouCompleteMe,今天在家折腾一天总算搞定了.关键问题是在于P ...
- Vim自动补全神器–YouCompleteMe
一.简介 YouCompleteMe是Vim的自动补全插件,与同类插件相比,具有如下优势 1.基于语义补全 2.整合实现了多种插件 clang_complete.AutoComplPop .Super ...
随机推荐
- Linux下MakeFile初探
make是linux下的编译命令,用于编译和生成Linux下的可执行文件.这个命令处理的对象是Makefile,makefile等.由于make的强大解析能力,makefile文件的编写也变得极为简单 ...
- XML学习笔记5——XSD复杂数据类型
和简单数据类型对应就是复杂数据类型了,XML元素的数据类型可以是简单数据类型,也可以是复杂数据类型,而XML属性的数据类型就只能是简单数据类型.这篇笔记,就来学习一下XSD中的复杂数据类型了. 1.定 ...
- Chrome 控制台指南
转自:http://blog.jobbole.com/76985/ Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更 ...
- 单机redis 主从实例
环境windows xp sp3 1.redis 安装 redis windows安装文件下载地址:http://code.google.com/p/servicestack/wiki/RedisWi ...
- JQuery 实现页面无刷新
对于JQuery实现页面无刷新的效果,即:应用这个JQuery这个组件,可以实现在页面上加载数据库中的数据信息,但是并没有给用户页面刷新的感觉,这样既可以有效的进行数据交互,也可以不妨碍用户的其他操作 ...
- 经验总结:HTTP返回505错误小记
昨天调试代码的时候,用http请求一个图片,返回的结果为如下: HTTP/1.1 505 HTTP Version Not Supported Server: Apache-Coyote/1.1 Da ...
- Azure China (7) 使用WebMetrix将Web Site发布至Azure China
<Windows Azure Platform 系列文章目录> 本章介绍的是,使用世纪互联运维的Azure云服务. 1.首先我们登陆Azure管理界面.http://manage.wind ...
- SQL Server安全(7/11):使用跨数据库所有权链接(Cross-Database Ownership Chaining)的跨数据库安全
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- 基于HTML5的WebGL结合Box2DJS物理应用
上篇我们基于HT for Web呈现了A* Search Algorithm的3D寻路效果,这篇我们将采用HT for Web 3D来呈现Box2DJS物理引擎的碰撞效果,同上篇其实Box2DJS只是 ...
- linux中不小心将rpm命令卸载了,怎么恢复?
今天在搭建mysql的集群服务时,安装mysql集群服务前,先卸载原来mysql的软件包,不小心将rpm的命令也给卸载掉了,这下惨了,什么也做不了了.在google了翻了好多个页面,甚至官网也看了,没 ...