Vim 自定义补全利器 Snippet

Vim Snippet 设置

本人是 vim 用户,可以说能不用 IDE 就不用 IDE。
Snippet 是一种支持用户自定义补全的需求,在 vim 中,可以使用 UltiSnipsVim-Snippets 两个插件进行补全。UltiSnips 类似于一个替换引擎,本身是没有任何补全规则的,而 Vim-Snippets 则提供了各种各样的 snippets。
具体效果如下

kTuW79.gif

安装方法很简单,在 ~/.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

效果显示如下:
kTu5fx.gif

这里面$1, $2, $3代表了不同的变量,按照变量顺序,我们可以实现在变量之间的自动跳转。
<c-j> 向后跳转, <c-k> 向前跳转。

转载于:https://www.cnblogs.com/wAther/p/10444045.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值