我想在其他文件类型/语法模式中使用Emmet而不是HTML。特别是来自Smarty的.tpl文件和不同CMS的其他模板文件。 有什么办法可以在这些文件中使用制表符处理程序吗?我不喜欢用其他文件命中CTRL + E,因为唯一的区别是文件扩展名和一些模板部分。
答案 0 :(得分:4)
foo
缩写,Emmet不知道您是否要将其转换为<foo>
标记,或者您希望扩展与此触发器关联的本机ST片段。因此,使用一些技巧来确定您要做的事情。虽然这可能适用于HTML,但在其他语言中,它可能会使用错误的触发器来惹恼你。
如果您100%确定模板文件中不需要本机ST片段,则可以执行以下操作:打开用户的键盘映射文件(在ST中查找Key Bindings — User
菜单项)并添加以下代码有:
[{
"keys": ["tab"],
"command": "expand_abbreviation_by_tab",
"context": [
{
"operand": "SYNTAX SCOPE",
"operator": "equal",
"match_all": true,
"key": "selector"
},
{
"match_all": true,
"key": "selection_empty"
},
{
"operator": "equal",
"operand": false,
"match_all": true,
"key": "has_next_field"
},
{
"operator": "equal",
"operand": false,
"match_all": true,
"key": "auto_complete_visible"
},
{
"operator": "equal",
"operand": false,
"match_all": true,
"key": "setting.disable_tab_abbreviations_on_auto_complete"
},
{
"match_all": true,
"key": "is_abbreviation"
}
]
}]
其中SYNTAX SCOPE
是语法的范围名称,您可以通过按Ctrl + Shift + P(Mac)或Ctrl + Alt + Shift + P(PC)
答案 1 :(得分:4)
你可以找到编辑emmet文件夹中的snippets.json
(Packages \ Emmet \ emmet)
添加:
"tpl": {
"extends": "html"
},
将tpl
更改为您要启用emmet代码扩展的任何文件扩展名。
在haml
结尾处有sass
,snippets.json
示例,您可以模仿它们。
答案 2 :(得分:1)
您应该将新文件snippets.json放在Emmet的扩展目录中,而不是编辑原始的snippets.json,通常是〜/ emmet,(您可以在Emmet的设置中将其更改为〜/ .atom / emmet)以获得更好的清晰度和能力在升级/重新安装时保持您的设置。
然后只需添加部分:
{
"tpl": {
"extends": "html"
}
}
答案 3 :(得分:-1)
现在你应该将“key”:“setting.disable_tab_abbreviations_on_auto_complete”改为“key”:“setting.disable_tab_abbreviations”为它的工作