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 ...
随机推荐
- [Android Studio] 2019年Android Studio配置指北
Android Studio是我学习Android开发路上的第一块绊脚石,新建一个项目,一行代码没动,直接编译不起来,我太难了,所以本文叫指北 本文讲解在9102年如何在国内网络不通畅的情况下流畅的使 ...
- [Note] Clipboard.js 使用
clipboard.js是一个用来设置剪切板的库,小巧无依赖,但用法有点诡异,必须依赖一个DOM元素 据作者说,由于浏览器相关安全策略的缘故,无法使用下面这种方式来设置剪切板 clipboard.co ...
- Cocos Creator 3D 打砖块教程(二) | 子弹发射与摄像机平滑移动
在线体验链接: http://example.creator-star.cn/block3d/ 前面一篇文章,我们讲了[打砖块]游戏中的3D物体的场景布局.材质资源.物理刚体与碰撞组件,接下来本篇文章 ...
- ant path匹配原则
ant path匹配原则 又称路径匹配原则,spring中的相关策略类org.springframework.util.AntPathMatcher 路径模式使用了apache ant的路径样式 ap ...
- struts 2.3.28+spring 4.2.5.RELEASE+hibernate 5.1.0.Final整合maven构建项目基本配置
第一次写博客,主要也是记录给自己看的,可能很多比较熟的地方就没注释 用maven构建,ssh框架都是选用的最新的release版(感觉还是不要用beta),环境jdk1.8 tomcat8.0 mys ...
- CSDN VIP如何添加自定义栏目
几个月前我也开始在csdn上开了博客,一来给自己加几个少的可怜的流量,再者,让公众号的原创文章获得更多的曝光,让有需要的同学看到. 写过csdn博客的同学都知道,默认只有打赏c币功能:也没有专门广告位 ...
- docker镜像制作必备技能
正文 使用过docker的都知道dockerfile,其用于定义制作镜像的流程,由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.可参考往期文章学习:docker基础知识整理 ...
- python编程基础之三十八
正则表达式:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 需要引入内置模块r ...
- 使用Jmeter并发websocket协议项目
1.安装Jmeter 网址:http://jmeter.apache.org/下载 2.启动Jmeter \apache-jmeter-5.1.1\bin\jmeter.bat 3.安装‘Plugin ...
- 谈linux服务器运维需要掌握的技能
一.linux基础 包括对Linux整体的理解/使用和基本命令 二.运维的命令 运维相关的工具(命令) 三.基础服务 LAMP或LNMP :Apache/Nginx,MySQL,PHP/Python/ ...