0

我尝试在 Sublime Text 中使用片段 - 我在 /Users/davidfaux/Library/Application Support/Sublime Text 2/Packages/User 中创建了一个文档 hello.sublime-snippet:

<snippet>
  <content><![CDATA[
  alert("hello {$1}");
]]></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.js</scope> -->
</snippet>

然后,我在桌面上创建了一个名为 hello.js 的新文件:

document.onload = function() {
  hello
}

但是,当我在 hello 之后按 tab 时,什么也没有发生。为什么不?我尝试"auto_complete_commit_on_tab": true在我的用户设置中进行设置,并且此属性似乎适用于自动完成。

任何有关调试方向的建议表示赞赏!

4

3 回答 3

1

正如其他人所提到的,确定其选项卡触发器的片段部分当前已注释XML 注释如下所示:

<!-- ...commented content... -->

您已将tabTrigger标语行和scope标语行都添加了注释,因此hello不会扩展到代码段内容——现在激活代码段的唯一方法是通过命令面板——代码段的范围实际上也不限于 Javascript 文件。您必须从这些行中删除注释(Ctrl+/是 Windows 上默认的单行注释切换)才能使它们生效,如下所示:

<!-- 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.js</scope>

您可以在非官方文档片段页面上阅读有关片段的更多信息。

于 2013-05-29T15:00:38.680 回答
1

您正在使用模板来创建此代码段。因此,您需要取消注释实际定义片段的行。

在 ST2 中执行此操作的快速方法是选择整行并按 ctrl+shift+/ 删除注释标记。

您需要取消注释的行是<tabTrigger>hello</tabTrigger>行和<scope>source.js</scope>行。然后,只要您将它放在 .js 文件中,这个片段就应该可以正常工作。

此外,我更喜欢使用 Enter 来自动完成,因为在 ST2 中也使用 Tab 进行导航。

于 2013-05-29T15:00:12.150 回答
0

取消注释<tabTrigger>,当您按 Tab 后它会起作用hello

于 2013-05-29T08:09:54.207 回答