Vim 自定义补全利器 Snippet
Vim Snippet 设置
本人是 vim 用户,可以说能不用 IDE 就不用 IDE。
Snippet 是一种支持用户自定义补全的需求,在 vim 中,可以使用 UltiSnips
和 Vim-Snippets
两个插件进行补全。UltiSnips
类似于一个替换引擎,本身是没有任何补全规则的,而 Vim-Snippets
则提供了各种各样的 snippets。
具体效果如下
安装方法很简单,在 ~/.vimrc
中加入
Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'
安装好之后,默认展开是 <tab>
,我们还可以使用let g:UltiSnipsExpandTrigger = key
来定义自己想要展开的键。
一些常用的展开:
incc => #include<iostream>
inc => #include<stdio.h>
cout => cout << ... << endl
UltiSnips
同时还支持我们自定义代码块补全,方法也很简单。
Step1:
在 ~/.vim/
下创建一个文件夹为 UltiSnips
用来存放我们自定义的补全,创建一个文件名为 语言.snippets
的文件,这个语言即会在某个具体的语言生效。比如,需要创建一个用来补全 C 语言的文件,那文件名就是 c.snippets
,创建一个用来补全 Cpp 的文件,那文件名就是 cpp.snippets
Step2:
语法规则:每一个展开规则都类似于如下的样式。
snippet 缩写 “描述” 设定
展开后的代码
endsnippet
例如,如果我想对 #define 进行缩写,想要达到的效果是输入def,即可自动展开。那么,应该如下编写
snippet def "define" b
#define
endsnippet
设定的选项有介绍以下几种:
b
这个关键词只有出现在行首的时候,才能被展开。A
代表自动展开i
表示可以护绿前后的字节,直接展开关键词。
查看更多的选项设置可以在 ultisnip
文档查看。
Step3
我们还可以设定一些,自动跳转和同步显示的高级玩法。
snippet for "for loop" b
for (int ${1:i} = $2; $1 < $3; $1++){
$4
}
endsnippet
效果显示如下:
这里面$1
, $2
, $3
代表了不同的变量,按照变量顺序,我们可以实现在变量之间的自动跳转。
<c-j>
向后跳转, <c-k>
向前跳转。
Vim 自定义补全利器 Snippet的更多相关文章
- Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式
1. 关于 Vim 补全模式 ---- Vim 一共提供了 15 种自动补全的模式(:help ins-completion).其中有两种的补全列表内容与另外两种相同,只是排序不同,这 15 种 ...
- Vim自动补全神器–YouCompleteMe
YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器.也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么.在Vim被程序员所使用后,其慢慢的被肩负了与IDE ...
- VIM自动补全插件 - YouCompleteMe--"大神级vim补全插件"
VIM自动补全插件 - YouCompleteMe 序言 vim 之所以被称为编辑器之神多半归功于其丰富的可DIY的灵活插件功能,( 例如vim下的这款神级般的代码补全插件YouCompleteMe) ...
- vim代码补全-spf13,YouCompleteMe
vim代码补全 现在的图形界面的IDE(Integrated Development Environment)一般具有语法高亮,语法检查,自动补全功能,大大提高了编程的效率. vim作为文本编辑器其强 ...
- vim自动补全
Vim 中使用 OmniComplete 为 C/C++ 自动补全 OmniComplete 并不是插件的名字,而是 Vim 众多补全方式中的一种(全能补全).说白了 OmniComplete 其实就 ...
- Windows 10环境安装VIM代码补全插件YouCompleteMe
Windows 10环境安装VIM代码补全插件YouCompleteMe 折腾一周也没搞定Windows下安装VIM代码补全插件YouCompleteMe,今天在家折腾一天总算搞定了.关键问题是在于P ...
- 【转】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这么方便快捷的补全插件呢?以前用 ...
- vim 自动补全 颜色设置
vim 自动补全 颜色设置 hi Pmenu ctermfg=black ctermbg=gray guibg=# hi PmenuSel ctermfg= ctermbg= guibg=# guif ...
随机推荐
- Creator3D长什么样?看看官方惊艳的DEMO就知道了,附在线体验!
Shawn 这两天在学习 Creator3D 的官方案例,由于是刚接触 Creator3D 很多东西在没弄清楚之前还是以简单的编辑介绍为主,先了解一下3D场景的基本操作: 观查场景:按住鼠标右键以自己 ...
- Zeppelin 学习笔记之 Zeppelin安装和elasticsearch整合
Zeppelin安装: Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化.背后可以接入不同的数据处理引擎,包括spark, hive, taj ...
- LitePal的聚合函数
传统的聚合函数用法 虽说是聚合函数,但它的用法其实和传统的查询还是差不多的,即仍然使用的是select语句.但是在select语句当中我们通常不会再去指定列名,而是将需要统计的列名传入到聚合函数当 ...
- 采坑指南——k8s域名解析coredns问题排查过程
正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出).今天发现域名解析不了. 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一 ...
- JavaEE——JSP开发模式(model1)
model1开发模式 工作流程: ①浏览器请求,JSP页面接收 ②JSP根据请求和JavaBean进行交互 ③JavaBean进行业务处理,JDBC操纵数据库 ④JSP将请求结果返回浏览器页面 利用m ...
- Ubuntu 16.04安装snort含问题解决
源码方式安装 wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz tar xvzf daq-2.0.6.tar.gz cd daq- ...
- LAMP环境部署物联网项目
今天来在LAMP环境下搭建一个PHP项目,开始之前,先来普及下物联网常识: 物联网,即Internet of Things,简写IOT.让所有能行使独立功能的普通物体实现互联互通的网络,通过物联网可以 ...
- SQL 存储过程示例讲解
create proc score_result ) --参数 as declare --定义变量@courseNo int, @testTime1 datetime, @avg int begin ...
- Bitset改进你的程序质量
1:Bitset介绍 BitSet 是用于存储二进制位和对二进制进行操作的 Java 数据结构, 此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的整数将 B ...
- 小白学 Python(3):基础数据类型(下)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...