Sublime Text软件定义快捷输入片段

使用 Sublime Text 进行写作的时候, 难免会遇到需要重复输入的内容, 那么就可以使用内容片段(Snippet)来实现.

新建编辑内容片段: Tools(工具) -> Developer(开发者..) -> New Snippet…(新建片段…)

此时会出现如下内容:

1
2
3
4
5
6
7
8
9
10
<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>

content: 其中必须包含 <![CDATA[…]]>, 否则无法工作, 修改 Hello, ${1:this} is a ${2:snippet}. 部分, 用来写你自己的内容片段

tabTrigger: 用来引发内容片段的字符或者字符串, 比如在以上例子上, 在编辑窗口输入 hello 然后按下 tab 就会在编辑器输出 Hello, ${1:this} is a ${2:snippet}. 这段内容

scope: 表示你的代码片段会在那种语言环境下激活, 比如上面代码定义了 source.python, 意思是这段代码片段会在 python 语言环境下激活.

description: 展示代码片段的描述, 如果不写的话, 默认使用代码片段的文件名作为描述

content 的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<snippet>
<content><![CDATA[
{% blockquote ${1:Author}, ${2:Source} ${3:Link} ${4:SourceTitle} %}
${5:Content}
{% endblockquote %}
]]></content>

<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->

<tabTrigger>bq</tabTrigger>

<!-- Optional: Set a scope to limit where the snippet will trigger -->

<scope>text.html.markdown</scope>
<description>Md:引用名言</description>
</snippet>

其中 ${1:Author} 等为站位符号, 表示生成之后可以按 tab 键跳转到该符号位进行再编辑.

tabTrigger 快捷键

将上面的内容保存为 bq.sublime-snippet 文件, 存档到 Sublime Text/Packages/User/ 目录下, 在 markdown(*.md)文件下, 输入 bq 之后按 tab 键就可以生成如下内容:

1
2
3
{% blockquote Author, Source Link SourceTitle %}
Content
{% endblockquote %}

这一部分详细阅读手把手教你写 Sublime 中的 Snippet

scope 有效文件类型

接下来如果要配置不同类型文件有效, 那么就要使用到 scope 属性:

语言(语法) Scope 名称
ActionScript source.actionscript.2
ActionScript 3 source.actionscript.3
Ant text.xml.ant
AppleScript source.applescript
ASP source.asp
Batch File source.dosbatch
Bibtex text.bibtex
C source.c
C# source.cs
C++ source.c++
camlp4 source.camlp4.ocaml
Clojure source.clojure
CoffeeScript source.coffee
CSS source.css
D source.d
Diff source.diff
DOT source.dot
Emmet source.zen.5a454e6772616d6d6172
Erlang source.erlang
Go source.go
Groovy source.groovy
Haskell source.haskell
Hex source.hex
HTML text.html.basic
HTML (ASP) text.html.asp
HTML (Erlang) text.html.erlang.yaws
HTML (Rails) text.html.ruby
HTML (Tcl) text.html.tcl
HTML5 text.html.basic
Java source.java
Java Server Pages (JSP) text.html.jsp
JavaDoc text.html.javadoc
JavaProperties source.java-props
JavaScript source.js
JavaScript (Rails) source.js.rails
jQuery (JavaScript) source.js.jquery
JSON source.json
LaTeX text.tex.latex
LaTeX Beamer text.tex.latex.beamer
LaTeX Log text.log.latex
LaTeX Memoir text.tex.latex.memoir
Lisp source.lisp
Literate Haskell text.tex.latex.haskell
Lua source.lua
Makefile source.makefile
Markdown text.html.markdown
Matlab source.matlab
MultiMarkdown text.html.markdown.multimarkdown
MXML text.xml.mxml
NAnt Build File source.nant-build
Objective-C source.objc
Objective-C++ source.objc++
OCaml source.ocaml
OCamllex source.ocamllex
OCamlyacc source.ocamlyacc
Perl source.perl
PHP source.php
Plain text text.plain
Python source.python
R source.r
R Console source.r-console
Rd (R Documentation) text.tex.latex.rd
RegExp source.regexp
Regular Expressions (Python) source.regexp.python
reStructuredText text.restructuredtext
Ruby source.ruby
Ruby Haml text.haml
Ruby on Rails source.ruby.rails
Scala source.scala
SFTP Output Panel output.sftp
Shell Script (Bash) source.shell
SQL source.sql
SQL (Rails) source.sql.ruby
Tasks text.todo
Tcl source.tcl
TeX text.tex
TeX Math text.tex.math
Textile text.html.textile
XML text.xml
XSL text.xml.xsl
YAML source.yaml

这一部分详见Sublime Text 2 中怎样查找 scope 的名称

description 描述

用于描述一下这个片段的大致内容, 概要

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.