sublime text 2代码片段(Snippet)功能的使用
“snippet”在英语里面是“片段”的意思。当我们编码时候,通常想要打几个简略的字符串,就出来一些固定的模板。
例如:使用snippet在新建文件时快速生成HTML头部信息等。
定义很简单,菜单:tools->new snippets,会新建一个xml文件页签:
<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>
是不是看的有点眼晕,那我们看下完整的结构和说明:
<snippet>
<content><![CDATA[ 你需要插入的代码片段${1:this} ]]></content>
<!-- 可选:快捷键,利用Tab自动补全代码的功能 -->
<tabTrigger>hello</tabTrigger>
<!-- 可选:使用范围,不填写代表对所有文件有效。附:source.css和text.html分别对应不同文件。 -->
<scope>source.python</scope>
<!-- 可选:在snippet菜单中的显示说明(支持中文)。如果不定义,菜单则显示当前文件的文件名。 -->
<description>My Fancy Snippet</description>
</snippet>
现在对以上的参数进行说明:
content:是你要定义的模板内容;
===========================================================================
其中${序号:默认值} 表示序号相同的地方,光标会同时停在那,进行多处同时编辑;其中【:默认值】为自定义参数(可选),其中的【默认值】会直接输出在文件中;
如果是${序号}表示代码插入后,按Tab键,光标会根据顺序跳转到相应位置(以此类推);
序号大小就是tabindex;
在实际使用代码的时候,可以使用tab切换光标位置。
===========================================================================
tabTrigger:是你按tab键之前需要输入的快捷字符串,输了该字符串后,按tab键,就在光标处插入content中的内容。
scope:这个很重要,表示这个snippet在什么文件或什么内容下有效,是对文件格式的限制,比如,html格式的要设置为text.html。
===========================================================================
如果你不知道如何设置scope,才会让sinppet正常响应,可以参考:https://gist.github.com/iambibhas/4705378
如果设置错误,就会无效啦。
scope列表如下:
ActionScript: source.actionscript.2
AppleScript: source.applescript
ASP: source.asp
Batch FIle: source.dosbatch
C#: source.cs
C++: source.c++
Clojure: source.clojure
CSS: source.css
D: source.d
Diff: source.diff
Erlang: source.erlang
Go: source.go
GraphViz: source.dot
Groovy: source.groovy
Haskell: source.haskell
HTML: text.html(.basic)
JSP: text.html.jsp
Java: source.java
Java Properties: source.java-props
Java Doc: text.html.javadoc
JSON: source.json
Javascript: source.js
BibTex: source.bibtex
Latex Log: text.log.latex
Latex Memoir: text.tex.latex.memoir
Latex: text.tex.latex
TeX: text.tex
Lisp: source.lisp
Lua: source.lua
MakeFile: source.makefile
Markdown: text.html.markdown
Multi Markdown: text.html.markdown.multimarkdown
Matlab: source.matlab
Objective-C: source.objc
Objective-C++: source.objc++
OCaml campl4: source.camlp4.ocaml
OCaml: source.ocaml
OCamllex: source.ocamllex
Perl: source.perl
PHP: source.php
Regular Expression(python): source.regexp.python
Python: source.python
R Console: source.r-console
R: source.r
Ruby on Rails: source.ruby.rails
Ruby HAML: text.haml
SQL(Ruby): source.sql.ruby
Regular Expression: source.regexp
RestructuredText: text.restructuredtext
Ruby: source.ruby
Scala: source.scala
Shell Script: source.shell
SQL: source.sql
TCL: source.tcl
HTML(TCL): text.html.tcl
Plain text: text.plain
Textile: text.html.textile
XML: text.xml
XSL: text.xml.xsl
YAML: source.yaml
===========================================================================
现在,我们有了个大致的了解,那我们就开始自己动手编写一个实例:
<snippet>
<content>
<![CDATA[
<footer>
<p>Copyright © 2012 ${1:feige}.com</p>
<p>增值电信业务经营许可证 赣A2-${2} <a href="#">赣ICP备号${3}</a></p>
</footer>
]]>
</content>
<tabTrigger>cft</tabTrigger>
<description>custom-footer</description>
<scope>text.html</scope>
</snippet>
创建完毕以后,保存在\Packages\User目录下(例 X:\Sublime Text 2.0\Data\Packages\User),文件命名为cft-code,后缀名.sublime-snoppet。
重启sublime text 2,该snippet即可使用了。
此时我们打开一个html文件,输入cft,再按Tab键,刚才我们所编写的代码段,就插入了进来。
并且此时的光标停留在我们所标记的${1}位置处,如果我们再按下Tab,那么光标就跳转到${2}的位置。
由于我们在scope中定义了仅在html文件中使用,所以此时如果我们打开的是css或其他格式的文件,那将无法插入代码段。
补充:除了利用快捷键Tab出代码之外,我们还能通过菜单来加载,打开Tools > Snippet,选择Snippet: custom-footer。如果你没有定义description,那此时便会看到以我们文件名为命名的Snippet: cft-code选项。
要是还没有看懂,那我们在来一个例子,下面是html5代码片段的定义:
<snippet>
<content><![CDATA[
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>${1}</title>
</head>
<body>
<h1>${1}</h1>
Hello, ${2:this} is a ${3:snippet}.
</body>
</html>
]]></content> <tabTrigger>html5</tabTrigger>
<scope>text.html</scope>
</snippet>
保存完重启Sublime text 2,新建文件:输入html5,tab会出现如下效果:

${1}出现了两次,所以我们看到2个光标,这样我们就可以同时编辑图中两处。
${2:this},所以在2处出现this默认值。
${3:snippet},所以在3处出现snippet默认值。
${1}处编辑完按tab就到${2}处。
sublime text 2代码片段(Snippet)功能的使用的更多相关文章
- Sublime Text 新建代码片段(图解)
新建代码片段 1.打开NEW Snippet- 2.编辑代码片段 3.设置快捷键,按tab键执行 更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_4451949 ...
- Sublime Text Snippets(代码片段)功能
原文链接:http://www.bluesdream.com/blog/sublime-text-snippets-function.html 我们在编写代码的时候,总会遇到一些需要反复使用的代码片段 ...
- sublime text 3 添加 javascript 代码片段 ( snippet )
例如:新建console.log();的快捷键为 co 环境:windows 7 step1: Tools -> New Snippet <snippet> <content& ...
- Sublime Text 2 代码片断
原文:Snippets 不管是在编码,还是写畅销书,你都可能会需要一遍又一遍的用到一些文本的小片断.使用片断来结束这种单调无聊的码字吧,片断是一种智能的模板,它能在合适的上下文中插入你需要的文本内容. ...
- sublime text3 增加代码片段(snipper)
有时候编写代码时有些代码片段经常会用到,如果能将这些代码片段整理,再在需要的时候通过某些条件触发,那无疑是非常方便的! 创建方法:工具->插件开发->新建代码片段 默认产生的内容是: &l ...
- VS代码片段(snippet)创作工具——Snippet Editor(转)
原文:http://blog.csdn.net/oyi319/article/details/5605502 从Visual Studio 2005开始,IDE支持代码片段.代码片段以代码缩写和TAB ...
- Sublime Text 2 强大的编辑功能
多行编辑功能:1) 同时编辑多行 (Ctrl+Shift+L (Win) 或 Command+Shift+L (Mac))如要在选中的多行文本的最后面同时添加一个字符"a",先选 ...
- 神器-Sublime Text 3 代码编辑器安装与使用
一.软件获取 1.软件下载地址:http://www.sublimetext.com/3. 2.注册机和汉化下载:http://files.cnblogs.com/files/1312mn/subli ...
- sublime text 添加到鼠标右键功能
安装sublime text的同学可能在安装的时候忘了设置sublime text的右键功能.那我们介绍如何添加. 我们要创建一个.reg为后缀的文件sublime_addright.reg.那么…… ...
随机推荐
- UILabel字体加粗等属性和特效
/* Accessing the Text Attributes text property font property textColor property textAlignment pr ...
- JavaFX 3D部分介绍(3) Lights
声明: 本博客文章原创类别的均为个人原创,版权所有.转载请注明出处: http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com. ...
- java第一章到第四章
class HelloWorld{ public static void main(String [] arguments) { System.out.println("Hello Worl ...
- 浙大PTA - - File Transfer
题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21732 #include "iostream" #includ ...
- nginx配置中文域名解析
当nginx配置文件中的default如果遇到解析指向问题的时候 ,配置了中文 没有用 后来找了找这个网址 http://tools.jb51.net/punycode/ 然后进去转换了一下 把 评估 ...
- 笔记本PS/2键盘无法使用,试下这个方法
用360清理了一下系统,再开机键盘就不灵了,鼠标却可以用. 打开设备管理器,看到PS/2标准键盘有个黄色的感叹号. 属性显示PS/2 标准键盘 Windows 无法加载这个硬件的设备驱动程序.驱动程序 ...
- C# 保存和读取TreeView展开的状态
附件 http://files.cnblogs.com/xe2011/ReadAndSaveTreeViewState.rar 保存和读取TreeView展开的状态 节点{ImageIndex,Is ...
- windows 下一个 easy_install 设备
下载安装python安装工具 1,方法是下载ez_setup.py后 2,在cmd下运行 python ez_setup.py.就可以自己主动安装setuptools 3,环境变量设置将 C:\Pro ...
- 网络学习笔记----01--pathping跟踪数据包路径
操作系统win7 Pathping主要用于提供有关在来源和目标之间的中间跃点处的网络滞后和网络丢失的信息. Pathping将多个回显请求消息发送到来源和目标之间的各个路由器一段时间,然后根据各个路由 ...
- iOS中保证线程安全的几种方式与性能对比
来源:景铭巴巴 链接:http://www.jianshu.com/p/938d68ed832c 一.前言 前段时间看了几个开源项目,发现他们保持线程同步的方式各不相同,有@synchronized. ...