Emmet插件需重启Sublime Text才生效,且仅在HTML语法下、缩写独占一行并光标位于行尾时,Tab键才能展开;常见问题包括未重启、语法未设为HTML、缩写后有空格或符号、光标位置错误及混用全角字符。

Emmet 插件必须重启才生效
装完 Emmet 不按 Tab 没反应?大概率是没重启 Sublime Text。Package Control 安装完插件后,Sublime 不会热加载——Preferences → Package Settings 里能看到 Emmet 条目,不代表它已就绪。必须完全退出(Cmd+Q 或 Ctrl+Q),再重新打开,否则 tab 键永远触发不了缩写展开。
Tab 展开只在 HTML 语法下有效
右下角状态栏显示不是 HTML?那 Emmet 就不干活。常见误操作:新建文件后直接敲 div>ul>li*3,按 Tab 没反应——因为默认语法是 Plain text。必须先:
- 点击右下角语法名,选 HTML
- 或按 Ctrl+Shift+P(Windows/Linux)/Cmd+Shift+P(macOS),输入 Set Syntax: HTML 回车
- 文件后缀为 .html 也不自动生效,得手动设一次
缩写表达式必须独占一行且光标在末尾
div#app.main 后面跟个空格、换行符、中文字符,甚至一个制表符,tab 都不会展开。常见失败场景:
- 行首有空格: div#app → 失败
- 行尾有注释:div#app<!-- 注释 --> → 失败
- 光标不在行末:div#app|(| 表示光标位置)→ 失败,必须是 div#app| 且 | 在最右
- 混用输入法:中文全角符号(如“。”、“,”)混入缩写,直接解析失败
常用缩写和易错点对照
别死记,按高频场景记几个关键组合就行:
- html:5 或 ! → 生成完整 HTML5 结构(注意:必须按 tab,不是回车)
- ul>li*5>a{Item $} → 生成 5 个带编号的链接项,$ 是计数符,{} 插文本
- div.container>span.item$@3*2 → 生成两个 class 为 item3 和 item4 的 span,@3 表示从 3 开始编号
- input:text[name="user"]+input:password[name="pass"] → 注意冒号是 CSS 伪类写法,text 和 password 是 type 值,不是标签名
- div[attr=val] → 属性值含空格或特殊字符时,必须加引号:div[data-id="123 abc"],否则解析中断
真正卡住人的,从来不是缩写记不住,而是语法没切对、光标没放对、重启没做全——这些环节漏一个,Emmet 就安静如初。


















