HTML标签自动闭合依赖Emmet插件而非Sublime原生功能;原生auto_complete仅支持回车补全,Emmet通过Tab展开缩写并生成闭合标签,Auto Close Tag则在输入“”实时闭合。

HTML 标签自动闭合靠的是 Emmet,不是 Sublime 原生功能
Sublime Text 默认不自动闭合 确保已安装 Emmet 插件(通过 Package Control 安装)。关键配置在用户键绑定中: 这个配置让 HTML 文件中按 如果真需要「输入开始标签后按 立即学习“前端免费学习笔记(深入)”; 该插件默认启用,无需额外配置,但要注意它只对已知 HTML 标签名生效(比如你输 这三个机制常被混为一谈,但它们触发条件、作用范围完全不同: 如果你同时装了 Emmet 和 Auto Close Tag,可能遇到冲突:比如输 auto_complete 只补标签名(如输 div 回车变 ),但不会在你敲 —— 那是 Emmet 的 > 就自动补
expand_abbreviation 行为。启用 Emmet 并设置 Tab 触发闭合
[
{
"keys": ["tab"],
"command": "emmet_expand_abbreviation",
"context": [
{
"operand": "source.html, text.html - source.html.embedded",
"operator": "equal",
"match_all": true,
"key": "selector"
}
]
}
]Tab 能展开缩写(如 ul>li*3 → 列表结构),同时也能在输入 div 后按 Tab 得到 。注意:它不监听 > 键,所以别指望输完 想输
> 就闭合?用 Auto Close Tag 插件> 自动补结束标签」,得装 Auto Close Tag 插件。它监听 > 和 / 键,在以下场景生效:> → 变成 ,光标停在中间 按
> → 变成 (自闭合) 会自动补全为
不会闭合),且不处理 JSX 或 Vue 模板中的自定义标签。别混淆:HTML 自动完成 vs. 实时闭合 vs. Emmet 缩写
auto_complete(原生):输 div 后按 Ctrl+Space 或等待弹出菜单选,补全为
Emmet:输 div 后按 Tab,支持嵌套缩写(ul>li*2)Auto Close Tag:输 。解决办法是禁用 Auto Close Tag 的 >,实时响应,无缩写能力div 后按 Tab,Emmet 展开,但紧接着又触发 Auto Close Tag 补了个多余 enableAutoCloseTag 设置,或只在需要时启用它。










