我已经为 Sublime Text 2 安装了 Zen Coding。它在扩展标签之外的缩写时工作,但它不在那些脚本标签内(这是有道理的,因为那里需要 js)。但是,它在编辑 Handlebars 模板时会很有用。
有谁知道,如何配置/修改 Zen Coding ST2 插件来实现这一点?
谢谢
我已经为 Sublime Text 2 安装了 Zen Coding。它在扩展标签之外的缩写时工作,但它不在那些脚本标签内(这是有道理的,因为那里需要 js)。但是,它在编辑 Handlebars 模板时会很有用。
有谁知道,如何配置/修改 Zen Coding ST2 插件来实现这一点?
谢谢
它现在称为命令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。它立即开始工作!
其中./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"]}]
在“zencoding/zen_settings.py”的第 31 行,将 'filters': 'html,css' 更改为 'filters': 'html,css,hbs' 还可以在此处添加其他文件类型,例如 erb,如果您正在使用铁轨。