如何使用Sublime Text 2激活Handlebars模板中的Zen Coding完成

时间:2012-05-08 10:37:26

标签: handlebars.js emmet sublimetext2

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

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

由于

3 个答案:

答案 0 :(得分:5)

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

为了在嵌入式js(x-handlebars脚本范围)中使用Emmet,只需将此命令粘贴到keymap文件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。它立即开始工作!

答案 1 :(得分:4)

./ZenCoding/Default.sublime-keymap中,有一组上下文范围选择器,用于定义在编辑文件的不同部分时激活的操作。这些是scope selectors that TextMate uses

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属性中,并且zen编码将在脚本标记内部工作。

这是我的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"]}]

答案 2 :(得分:0)

在“zencoding / zen_settings.py”的第31行将'过滤器':'html,css'更改为'过滤器':'html,css,hbs'也可以在此处添加其他文件类型,例如erb if你正在使用rails。