将光标位置添加到 Sublime Text 3 中的 Snippet
Add cursor position to Snippet in Sublime Text 3
这是我在 Sublime Text 3 中添加片段的代码:
<snippet>
<content><![CDATA[
document.write();
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
问题是如何在这段代码中添加光标位置?
谢谢。
Sublime 中的片段允许您有选择地指定字段(制表位),允许您以交互方式用额外信息填充片段。
当代码段展开时,您可以 Tab 和 Shift+Tab 在字段之间来回移动,当您按下Tab 而在最后一个字段中,代码段扩展完成。
它的状态在当前 window 的状态栏中指示,在那里你会看到 Sublime 告诉你你在哪个领域以及有多少,例如Field 1 of 2
.
字段用 $
后跟数字指定,Sublime 按照数字顺序(</code>、然后是 <code>
等)跟在字段后面。出于这个原因,重要的是你在你的代码片段内容中输入任何文字 $
作为 $
而不是这样 Sublime 知道它不是一个字段。
话虽如此,字段 [=18=]
是特殊的,它指示当代码段扩展完成时光标最终应该结束的位置。如果 [=18=]
没有出现在代码片段中的任何地方,Sublime 就好像它是代码片段内容中的最后一样。
这就是它在上面的代码片段示例中所做的,所以当代码片段展开时,它会将光标留在代码片段的末尾,就在 ;
字符之后。
下面的代码片段会将光标留在括号内,以便您可以输入要插入到文档中的内容:
<snippet>
<content><![CDATA[
document.write([=10=]);
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
当这样指定时,片段没有 "real" 字段(只有特殊的 "exit" 字段),所以一旦它展开,光标就在括号内,片段展开是完成。
根据您的用例,您还可以使用如下代码片段实现类似的效果:
<snippet>
<content><![CDATA[
document.write();[=11=]
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
展开此代码段时,光标像以前一样放在括号内,但现在状态行会告诉您 Field 1 of 2
因为现在有两个字段(您的显式字段和 "exit" 在 [=18=]
).
这允许您键入以填写调用 document.write
的值,然后按 Tab 直接跳到行尾。
有关片段的更多信息,我推荐 Unofficial Documentation on Snippets。
这是我在 Sublime Text 3 中添加片段的代码:
<snippet>
<content><![CDATA[
document.write();
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
问题是如何在这段代码中添加光标位置? 谢谢。
Sublime 中的片段允许您有选择地指定字段(制表位),允许您以交互方式用额外信息填充片段。
当代码段展开时,您可以 Tab 和 Shift+Tab 在字段之间来回移动,当您按下Tab 而在最后一个字段中,代码段扩展完成。
它的状态在当前 window 的状态栏中指示,在那里你会看到 Sublime 告诉你你在哪个领域以及有多少,例如Field 1 of 2
.
字段用 $
后跟数字指定,Sublime 按照数字顺序(</code>、然后是 <code>
等)跟在字段后面。出于这个原因,重要的是你在你的代码片段内容中输入任何文字 $
作为 $
而不是这样 Sublime 知道它不是一个字段。
话虽如此,字段 [=18=]
是特殊的,它指示当代码段扩展完成时光标最终应该结束的位置。如果 [=18=]
没有出现在代码片段中的任何地方,Sublime 就好像它是代码片段内容中的最后一样。
这就是它在上面的代码片段示例中所做的,所以当代码片段展开时,它会将光标留在代码片段的末尾,就在 ;
字符之后。
下面的代码片段会将光标留在括号内,以便您可以输入要插入到文档中的内容:
<snippet>
<content><![CDATA[
document.write([=10=]);
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
当这样指定时,片段没有 "real" 字段(只有特殊的 "exit" 字段),所以一旦它展开,光标就在括号内,片段展开是完成。
根据您的用例,您还可以使用如下代码片段实现类似的效果:
<snippet>
<content><![CDATA[
document.write();[=11=]
]]></content>
<tabTrigger> dw </tabTrigger>
</snippet>
展开此代码段时,光标像以前一样放在括号内,但现在状态行会告诉您 Field 1 of 2
因为现在有两个字段(您的显式字段和 "exit" 在 [=18=]
).
这允许您键入以填写调用 document.write
的值,然后按 Tab 直接跳到行尾。
有关片段的更多信息,我推荐 Unofficial Documentation on Snippets。