摘要

程序员总是会不断的重复写一些简单的代码片段,为了提高编码效率,我们可以把经常用到的代码保存起来再调用。

平时用sublime安装各种插件,使用Tab键快速补全,便是snippets(可译为代码片段)的一种。

Sublime编辑器还提供了自定义代码片段的功能(当然不止Sublime有此功能),其官方文档中定义如下:

Whether you are coding or writing the next vampire best-seller, you’re likely to need certain short fragments of text again and again. Use snippets to save yourself tedious typing. Snippets are smart templates that will insert text for you and adapt it to their context.

一、创建snippets

1. 新建和保存

  • 菜单栏中依次选择Tools | Developer | New Snippet...就会新建一个扩展名为.sublime-snippet的XML语法的文档,注意后缀是识别snippets的关键。

  • 代码片段可以任意存储在packages文件夹下,默认会保存在Packages\User文件夹里,为了方便管理和使用建议再新建个文件夹例如snippets,则路径为Packages\User\snippets

  • 默认结构如下:

<snippet>
<content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<!-- <tabTrigger>hello</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>

2. content

  • <content></content>中必须包含<![CDATA[…]]>,在这里面写自定义的代码片段。

  • 代码片段如果含有]]>,需写成]]$NOT_DEFINED>

  • 如果含有$,需写成\$

3. tabTrigger

  • <tabTrigger></tabTrigger>中设置让Sublime自动补全的触发词(trigger keyword)。

4. scope

  • 设置代码片段在何种语言环境下激活,默认写的是python。

  • 想指定多个scope,可以使用英文逗号,来分隔。

  • 如何知道文档的Scope是什么?菜单栏依次选择Tools | Developer | Show Scope Name...,快捷键是Ctrl+Alt+Shift+P

5. description

  • 如果加了<description>描述内容</description>,点开Tools | Snippets...会显示你定义的描述内容。

  • 如果不写则显示文件名。

6. 设置光标位置Fields

<snippet>
<content><![CDATA[
First Name: $1
Second Name: $2
Address: $3
]]></content>
  • 美元符加数字即可设置field markers即光标的位置,按Tab键光标按数字依次从小到大循环,如上从1到2到3再到1。

  • Shift+Tab可以进行向上跳转。

  • Esc结束跳转。

  • $0表示最后一个位置。

7. 镜像域Mirrored Fields

  • 相同编号的位置即是镜像域,可同时选中进行编辑。

8. 占位符Placeholders

  • {数字编号}可以得到一个Tab占位符。

  • {1:default}可以得到一个默认值。

  • 按Tab键依次循环选中代码片段中的默认值。

如默认的代码片段Hello, ${1:this} is a ${2:snippet}.会依次循环选中单词this snippet

二、使用snippets

  • 方法1:菜单栏点击Tools | Snippets...,弹出为当前语法可用的Snippet,点击即插入。

  • 方法2:输入触发词然后按Tab键

三、安装snippets

  • 方法1:进入Package Control:install Package搜索选择安装已有的代码片段扩展包。

  • 方法2:菜单选择Preferences | Browse Packages...打开,建议新建文件夹snippets方便管理,路径为Sublime Text3\Packages\User\snippets,将写好的代码片段拷贝进去。

参考

掘金:Sublime Text3—Code Snippets(自定义代码片段)

简书:Sublime Text3—Code Snippets(自定义代码片段)

博客园:Sublime Text3—Code Snippets(自定义代码片段)

Sublime Text3—Code Snippets(自定义代码片段)的更多相关文章

  1. sublime text3 之snippet编写代码片段

    sublime text 3 中有个强大的功能就是可以编写各种文件类型的snippet代码片段,可以节省大量的时间. 文件名为:jekyll-top.sublime-snippet(.sublime- ...

  2. 利用 share code 插件同步代码片段

    利用 Settings Sync可以同步 VS code 配置,但它只能同步插件,利用  Settings Sync 再配合 share code 插件可以同步自定义代码片段,可以把 VS code ...

  3. pycharm自定义代码片段

    pycharm自定义代码片段 目录 (一)通用阶段 0 .新建.py文件模板:2 0 .pycharm中添加自定义代码片段:一图全知道:3 1 .定义类:classin              描述 ...

  4. vscode自定义代码片段,自定义注释片段(动态时间)

    下载vscode 一.打开vscode,点击左下角设置图标. 二.点击用户代码片段 三.点击新建全局代码片段文件 四.输入自定义代码片段配置文件名,例如:vue.json 五.进行代码片段配置示例如下 ...

  5. Sublime Text3自定义代码片段

    1.打开工具--插件开发--新建代码片段 会出现下图: 2.在<![CDATA[和]]>内写下你要的代码片段,注意的是代码片段要靠最左边. 3.设置快捷键,把下面tabTrigger标签的 ...

  6. Sublime Text Snippets(代码片段)功能

    原文链接:http://www.bluesdream.com/blog/sublime-text-snippets-function.html 我们在编写代码的时候,总会遇到一些需要反复使用的代码片段 ...

  7. sublime text 2自定义代码片段

    本文引用   http://www.blogjava.net/Hafeyang/archive/2012/08/17/how_to_create_code_snippet_in_subline_tex ...

  8. vs code 自定义代码片段

    1.快捷键Ctrl+Shift+P打开命令输入 snippet : (也可以点击文件=>首选项=>用户代码片段) 2.选择代码语言类型(这里以JavaScrpt为例) 3.在javascr ...

  9. spring rest docs自定义代码片段

    Spring rest docs 文档插件在生成文档时会默认生成6个代码片段,自适应生成其它片段.通过阅读官方文档发现其可以自定义生成的代码片段,但是官方只说了可以自定义模版,修改现有的代码片段的方法 ...

随机推荐

  1. Docker inspect - format格式化输出 - 运维笔记

    Docker --format 参数提供了基于 Go模板 的日志格式化输出辅助功能,并提供了一些内置的增强函数. 什么是模板?上图是大家熟悉的 MVC 框架(Model View Controller ...

  2. Centos7.3下安装Jumpserver 1.0.0(支持windows组件)

    Jumpserver最新版本支持windows组件,废话不多介绍了,下面直接介绍下部署过程: 0)系统环境 CentOS 7.3 IP: 192.168.10.210 [root@jumpserver ...

  3. ResultSet集合查询字段名称(转载)

    转自:https://blog.csdn.net/song_litao/article/details/84751351 public List<String> getColumnName ...

  4. js实现随机的四则运算题目(2)-更新界面

    上次的代码提交完成后,有很多bug.比如函数会重复调用执行,每点击一次按钮都会在生成题目的下方直接生成新的题目,于是我在代码前面添加了如下的代码: function play_allE() { doc ...

  5. atcoder A - Frog 1(DP)

    A - Frog 1 Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement There a ...

  6. Maven:The parent project must have a packaging type of POM

    在Maven Project 执行 New Maven Modual时,提示错误:The parent project must have a packaging type of POM http:/ ...

  7. [书摘]图解HTTP 状态码

    状态码类别: 1XX informational 信息性状态码 2XX Suess   成功状态码 3XX Redirection 重定向状态码 4XX Client error 客户端错误状态码 5 ...

  8. doc.update

    db.collection('todos').doc('todo-identifiant-aleatoire').update({ // data 传入需要局部更新的数据 data: { // 表示将 ...

  9. python矩阵水平镜像

    方法1: label = label.T[::-1].transpose() 方法2: label = label[:,::-1] 方法3: 使用 numpy.fliplr https://docs. ...

  10. poj1062昂贵的聘礼(枚举+最短路)

    题意:就是一个点能够被另一个点取代,通过花费一定的金币,注意就是你和某个人交易了,如果这个人的等级和酋长的等级差的绝对值超过m,酋长就不会和你交易了: 思路:这里要注意到,我们最终的目的是找到一条最短 ...