在Sublime Text 3中将光标位置添加到Snippet

时间:2017-08-28 20:11:13

标签: javascript sublimetext3 sublimetext2 code-snippets

这是我在Sublime Text 3中添加代码段的代码:

<snippet>
    <content><![CDATA[
document.write();
]]></content>
    <tabTrigger> dw </tabTrigger>
</snippet>

问题是如何在此代码中添加光标位置? 感谢。

1 个答案:

答案 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