sublime text 的 emmet 自 build 3126 起已内置,仅在 html、css 等支持语法下生效;缩写需符合语法规则(如 div.item*3),tab 展开受限于光标位置与缩进,ctrl+e 可强制展开。

Sublime Text 的 Emmet 不需要额外安装插件——它从 Build 3126 开始已内置,开箱即用。
Emmet 触发快捷键为什么按了没反应
最常见原因是没在支持的语法模式下:Emmet 默认只在 HTML、CSS、SCSS、LESS、XML 等语言中激活。如果当前文件是纯文本(Plain Text)或 JavaScript,Tab 或 Ctrl+E 都不会展开。
- 检查右下角语法标识,点击切换为
HTML或对应支持的语言 - 临时启用:按
Ctrl+Shift+P→ 输入Set Syntax: HTML回车 - 扩展支持:想在
.vue或.jsx中用 Emmet?需在Preferences → Package Settings → Emmet → Settings中添加"syntax_scopes"配置项
常用缩写怎么写才不翻车
缩写逻辑简单,但几个符号组合容易混淆:
-
div.item*3→ 生成 3 个<div class="item"></div>;*必须紧跟在标签/括号后,div*3.item会失效 -
ul>li*5→ 正确嵌套;ul>li*5>a会在每个li里加a;少一个>就变成同级并列 -
input[type="text"]要加引号,input[type=text]在 Sublime 中可能解析失败(尤其含空格或特殊字符时) -
span{Hello}→ 文本内容必须用{}包裹,span>Hello不生效
Tab 键不展开,但 Ctrl+E 可以,怎么回事
这是 Sublime 默认行为:Tab 展开仅在「行首无缩进 + 光标在缩写末尾」时触发;一旦有空格、缩进或光标不在末尾,Tab 就退化为普通缩进。
- 确保光标紧贴缩写结尾(比如
div.item后直接按Tab,不要留空格) - 避免在已有缩进的行里写缩写——哪怕只是两个空格,Tab 也不会展开
- 更稳的方式:全选缩写(如
div>p*2),再按Ctrl+E,强制展开,不受上下文干扰 - 想改回「任何位置 Tab 都展开」?修改
Preferences → Key Bindings,加一条:{"keys": ["tab"], "command": "emmet_expand_abbreviation"},但会覆盖 Tab 缩进功能
Emmet 的边界很清晰:它不是模板引擎,不处理变量、循环或条件;所有缩写都在本地实时解析,快是快,但写错一个符号就静默失败——多看右下角语法模式,多试 Ctrl+E,比查文档还快。











