16

我只是想制作一些片段,但我无法让它们中的任何一个工作。谁能看到这有什么问题?我阅读了他们的文档并从网上翻阅了一些示例,但它们也不起作用。我把它放在我的/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>
4

9 回答 9

13

您应该使用text.html而不是source.htmlscope块中。

于 2013-09-15T03:23:25.963 回答
13

Sublime 3 需要片段在文件名中有 .sublime-snippet 结尾。

于 2017-04-19T08:23:21.357 回答
8

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

<scope>source.html</scope>

<scope>text.html</scope>

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

"auto_complete_selector": true

到您的首选项 - 设置用户文件

于 2016-07-29T16:38:14.097 回答
5

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

于 2016-08-04T09:13:14.283 回答
3

我有同样的问题,我所做的是:

只需删除 <scope>source.html</scope>片段底部的行。

于 2019-01-07T14:36:00.277 回答
2

消除:

<description>HTML5 基础 HTML</description>

是的,这条线来自官方文档,但至少在我的例子中(Sublime 3,Build 3114),它打破了片段。当我删除该行时,该片段有效。

另外,正如上面的景龙回答的那样,将以下内容添加到您的用户偏好中:

“auto_complete_selector”:真

于 2018-03-14T14:27:31.130 回答
1

这显然是一个旧线程,但它是在我搜索创建崇高片段时出现的。最初的问题可能是您在没有先将语法设置为 html 的情况下输入“页面”作为选项卡触发器。您可以使用 shift + command/control + p 快速完成此操作,然后键入 sshtml 然后输入。再次尝试您的选项卡触发器。为我工作。干杯。

于 2015-02-16T19:32:19.030 回答
1

解决了..

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

背景

我的js/片段可以正常工作,<scope>source.html</scope>但无论出于何种原因,该行在我的html/片段中都没有引起问题。

于 2018-12-07T01:49:05.743 回答
0

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

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

于 2016-08-02T21:05:56.890 回答