sublime2定义snippet(片断)命名时注意点

sublime真的很优秀,功能强大到让人无语,以至让我放弃钟爱的nodepad++,虽然后者也很优秀,而且不断在进步,但sublime则是真正为程序员着想,急码农所需的代码编辑器。
sublime的配置很简单,采用json或xml tag标签语法定义,比如snippet就是用xml来定义的。
snippet有什么用呢?它就是用让你事先贮存一段定义的代码段,比如典型的用法:

<html>

<head>

</head>

<body>

</body>

</html>

如果你每次新建一个html文件时都要输入或复制一遍上述重复代码则浪费工作量,而现代编辑器则可让你将此代码定义为一个snippet片断,并命名之,在工作中输入此名然后按Tab键就可以插入事先编辑的片断。sublime是这样做的:
1、选择"Tool"--"new snippet"然后就调用出一个新snippet模板:
<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[
<html>
<head>
</head>
<body>
</body>
</html>
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>html:full</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>

<![CDATA[ ]]>中间的就是我们定义好代码片断,完成后保存一个xxx.sublime-snippet形式的文件,放在Packages\user目录下就行了。
注意,tabTrigger是触发调用的名称,我们命名为html:full,在文本中输入这几个字后再按Tab键,文本中就会出来我们要的代码片断,非常方便。scope是作用范围,指定对什么用的语言环境有效,比如,text.html则只对html语境有效,而source.php则只对php代码有效,具体参考说明。
但特殊符号在xml中命名是需要转义的,比如<>"'空格这些在html/xml中不能直接作为显示符号输入的字符需要通过实体来实现,比如你想输入〈html就调用上述片断需要这样来命名tabTrigger,不然保存会报错:

<tabTrigger>&lt;html</tabTrigger>

这样你用&lt;代替<后就能在文本中输入<html + Tab然后调用整个html片断了。

你可能感兴趣的:(sublime)