Sublime 中的代码段允许您选择性地指定字段(制表位),以便您以交互方式在 sn-p 中填写额外信息。
当 sn-p 展开时,您可以在字段之间来回 Tab 和 Shift+Tab,当您按下 Tab kbd> 而在最后一个字段中,sn -p 扩展完成。
它的状态显示在当前窗口的状态栏中,您将在其中看到 Sublime 告诉您您在哪个字段以及有多少字段,例如Field 1 of 2.
字段由$ 后跟一个数字指定,Sublime 以数字顺序在字段后面跟随($1,然后是$2,等等)。出于这个原因,在你的 sn-p 内容中输入任何文字 $ 是很重要的,而不是 \$,这样 Sublime 就会知道它不是一个字段。
话虽如此,$0 字段是特殊的,它指示当 sn-p 扩展完成时光标最终应该结束的位置。如果$0 没有出现在 sn-p 中的任何位置,Sublime 就好像它是 sn-p 内容中的最后一件事。
这就是它在上面的 sn-p 示例中所做的,所以当 sn-p 展开时,它会将光标留在 sn-p 的末尾,就在 ; 字符之后。
如下所示的 sn-p 会将光标留在括号内,以便您可以输入要插入到文档中的内容:
<snippet>
<content><![CDATA[
document.write($0);
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
当这样指定时,sn-p 没有“真正的”字段(只有特殊的“exit”字段),因此只要它展开,光标就在括号内,并且 sn-p 展开完成。
根据您的用例,您还可以使用 sn-p 实现类似的功能,如下所示:
<snippet>
<content><![CDATA[
document.write($1);$0
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
当你展开这个 sn-p 时,光标像以前一样放在括号内,但现在状态行会告诉你 Field 1 of 2 因为现在有两个字段(你的显式字段和 @ 处的“退出” 987654334@).
这允许您键入以填写对document.write 的调用的值,然后按Tab 直接跳到行尾。
有关 sn-ps 的更多信息,我推荐Unofficial Documentation on Snippets。