2

我已经为 Sublime Text 2 安装了 Zen Coding。它在扩展标签之外的缩写时工作,但它不在那些脚本标签内(这是有道理的,因为那里需要 js)。但是,它在编辑 Handlebars 模板时会很有用。

有谁知道,如何配置/修改 Zen Coding ST2 插件来实现这一点?

谢谢

4

3 回答 3

5

它现在称为命令expand_abbreviation_by_tab(我使用的是 Sublime Text 3)。

为了在嵌入式 js(x-handlebars 脚本范围)中使用 Emmet,只需将此命令粘贴到您的键盘映射文件中Key Bindings — User

{
    "keys": [
        "tab"
    ],
    "command": "expand_abbreviation_by_tab",
    "context": [
        {
            "operand": "source.js.embedded.html",
            "operator": "equal",
            "match_all": true,
            "key": "selector"
        }
    ]
}

添加您需要 Emmet 工作的任何范围作为键的operand

最重要的是你不需要重新启动 Sublime。它立即开始工作!

于 2014-02-22T06:20:17.673 回答
4

其中./ZenCoding/Default.sublime-keymap有一组上下文范围选择器,它们定义了在编辑文件的不同部分时哪些操作是活动的。这些与TextMate 使用的范围选择器相同。

命令的默认范围expand_zen_abbreviation_on_tab(在撰写本文时,它是文件中的最后一个条目)不包括<script>标签选择器。我们需要添加它。

为了找到正确的范围,请将光标放在 ST2 文档中的某处并点击ctrl+shift+p. 状态栏将显示您所在区域的选择器。对于保存在 .html 文件中的脚本标记,它会返回:

text.html.basic source.js.embedded.html

鉴于此信息,我们将source.js.embedded.html条目添加到命令的operand属性中expand_zen_abbreviation_on_tab,瞧,禅编码将在脚本标签内工作。

这是我expand_zen_abbreviation_on_tab添加的上下文...

 {"command": "expand_zen_abbreviation_on_tab",
  "context": [{"key": "selector",
               "match_all": true,
               "operand": "source.css - source.css.embedded, text.xml, text.html -source -meta.tag, meta.scope.between-tag-pair.html -source, source.js.embedded.html",
               "operator": "equal"},
              {"key": "selection_empty",
               "match_all": true,
               "operand": true,
               "operator": "equal"},
              {"key": "is_zen", "match_all": true}],
  "keys": ["tab"]}]
于 2012-07-19T23:03:01.850 回答
0

在“zencoding/zen_settings.py”的第 31 行,将 'filters': 'html,css' 更改为 'filters': 'html,css,hbs' 还可以在此处添加其他文件类型,例如 erb,如果您正在使用铁轨。

于 2012-06-01T06:27:59.517 回答