这是我在Sublime Text 3中添加代码段的代码:
<snippet>
<content><![CDATA[
document.write();
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
问题是如何在此代码中添加光标位置? 感谢。
答案 0 :(得分:11)
Sublime中的片段允许您选择性地指定字段(制表位),这些字段允许您以交互方式使用额外信息填充代码段。
当代码段扩展后,你可以在字段之间来回 Tab 和 Shift + Tab ,当你按 Tab 在最后一个字段中,片段扩展完成。
状态栏显示在当前窗口的状态栏中,您将看到Sublime告诉您您所在的字段以及有多少字段,例如: Field 1 of 2
。
使用$
后跟数字指定字段,Sublime按照数字顺序($1
,然后$2
等)跟踪字段。因此,在您的代码段内容中输入任何文字$
而不是\$
非常重要,以便Sublime知道它不是字段。
话虽如此,字段$0
是特殊的,表示当代码片段扩展完成时光标最终应该结束的位置。如果$0
未出现在代码段中的任何位置,则Sublime就像是片段内容中的最后一样。
它在上面的代码段示例中做了什么,所以当代码段展开时,它会将光标留在代码段的末尾,就在;
字符之后。
如下所示的代码段会将光标留在paranthesis中,以便您可以输入要插入文档的内容:
<snippet>
<content><![CDATA[
document.write($0);
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
当这样指定时,该片段没有&#34;真实&#34;字段(只是特殊的&#34;退出&#34;字段),因此只要它扩展,光标就在括号内并且片段扩展完成。
根据您的使用情况,您还可以使用以下代码段实现类似的功能:
<snippet>
<content><![CDATA[
document.write($1);$0
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
当您展开此代码段时,光标会像以前一样放在括号内,但现在状态行会告诉您Field 1 of 2
,因为现在有两个字段(您的显式字段和&#34;退出& #34;在$0
)。
这允许您输入以填写document.write
调用的值,然后按 Tab 直接跳到该行的末尾。
有关代码段的详细信息,建议使用Unofficial Documentation on Snippets。