我已经为Sublime Text 2安装了Zen Coding。它在扩展标签之外的缩写时起作用,但它不在这些脚本标签内(这是有意义的,因为在那里预期有js)。但是,在编辑Handlebars模板时它会很有用。
有谁知道,如何配置/修改Zen Coding ST2插件来实现这个目标?
由于
答案 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。