Sublime Snippet不工作

时间:2013-09-15 02:58:16

标签: sublimetext3

我只是想制作一些片段,但我无法让它们中的任何一个工作。有人能看出这有什么问题吗?我阅读了他们的文档,并在网上翻阅了一些例子,但它们也没有用。我在我的/sublime text 3/packages/user文件夹中找到了它,并使用约定myTest.sublime.snippet命名。

该片段是:

<snippet>
    <content>
<![CDATA[
<!DOCTYPE html lang="en">
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
    <meta charset="utf-8">
    <title>${1:test1|test2|test3} | $2</title>
    <meta name="viewport" content="width=device-width">
    <meta name="Description" lang="en" content="Description">
    <meta name="robots" content="index, follow">
    <meta name="robots" content="noodp, noydir">

    <!-- Twitter Bootstrap -->
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
    <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>

    <!--[if lt IE 9]>
        <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
        <script src="assets/js/respond.min.js"></script>
    <![endif]-->    
</head>
<body>

    <div class="container">
        $3
    </div>

</body>
</html>
]]>
</content>
    <tabTrigger>page</tabTrigger>
    <scope>source.html</scope>
    <description>HTML5 Base HTML</description>
</snippet>

9 个答案:

答案 0 :(得分:11)

您应该在text.html阻止中使用source.html代替scope

答案 1 :(得分:10)

Sublime 3需要片段才能在文件名中包含.sublime-snippet结尾。

答案 2 :(得分:3)

步骤1。对于html代码段,请更改

<scope>source.html</scope>

<scope>text.html</scope>

第二步。如果您希望sublime在输入关键字后显示工具提示,请添加此行

"auto_complete_selector": true

到首选项 - 设置用户文件

答案 3 :(得分:2)

您应该在代码段中转义美元符号。 $ - &gt; \ $。

答案 4 :(得分:1)

这显然是一个老线程,但是当我在创建崇高的片段时,它就出现了。最初的问题可能是您正在输入&#34; page&#34;作为您的标签触发器,而无需先将语法设置为html。您可以使用shift + command / control + p快速完成此操作,然后键入sshtml然后输入。再次尝试使用标签触发器。为我工作。欢呼声。

答案 5 :(得分:1)

卸下:

  

&lt; description&gt; HTML5 Base HTML&lt; / description&gt;

是的,这一行来自官方文档,但至少在我的实例中(Sublime 3,Build 3114),它打破了片段。当我删除该行时,该代码段可以正常工作。

此外,正如Jinglong上面的回答,将以下内容添加到您的用户首选项中:

  

&#34; auto_complete_selector&#34;:true

答案 6 :(得分:1)

我遇到了同样的问题,我所做的是:

只需删除该代码段底部的const inputs = document.querySelectorAll('input'); let data = {}; inputs.forEach((input, i) => { data[i] = input.value; }); window.localStorage.setItem('data', JSON.stringify(data)); 行。

答案 7 :(得分:0)

我找到了解决问题的方法!我一直在为我的键盘使用unicode设置进行另一个项目。当我将键盘更换回美国时,我的问题得到了解决。我确定这是一个不寻常的问题,但万一其他人遇到这个问题:

将键盘更改回美国也重新激活了一些代码导航快捷方式(例如,通过按住选项+箭头键在一行上跳转到单词)

答案 8 :(得分:0)

由...解决。

  • 删除<scope>source.html</scope>
  • "auto_complete_selector": true,添加到用户设置

背景

我的js/片段与<scope>source.html</scope>可以很好地工作,但是无论出于何种原因,该行都不会引起我的html/片段中的问题。