VS Code HTML补全失效主因是配置未对齐:需确认语言模式为HTML、emmet.triggerExpansionOnTab为true、html.suggest.enabled和editor.quickSuggestions.strings均开启,并执行Reload Window生效。

VS Code 默认已启用 HTML 基础补全,但多数人遇到“不补全”,其实是关键开关被关了、语言模式错了,或 Emmet 没触发——不是功能坏了,是配置没对齐。
确认语言模式是 HTML,不是 Plain Text 或 Vue
右下角状态栏显示的语言模式决定 VS Code 用哪套规则解析当前文件。哪怕文件名是 index.html,如果状态栏显示 Plain Text,所有补全都会失效。
- 点击右下角语言标识(如 “Plain Text”),选
HTML;或者按Ctrl+K Ctrl+M(macOS 是Cmd+K Cmd+M)快速切换 -
.vue文件默认走Vue语言模式,原生 HTML 补全不生效;需在settings.json中加:"files.associations": {"*.vue": "html"},再配合"emmet.includeLanguages": {"vue-html": "html"} - 新建空文件未保存时,默认是
Plain Text,必须先保存为.html后缀,或手动切语言模式
emmet.triggerExpansionOnTab 必须为 true
Emmet 是 VS Code 实现 div → <div></div> 这类缩写展开的核心机制。它默认只响应 Tab 键,且仅在正确上下文里生效。
- 检查
settings.json是否有这一行:"emmet.triggerExpansionOnTab": true;若为false或缺失,div+Tab就不会展开 - 输入缩写后,必须以
>或空格结尾再按Tab,比如div>或div(空格),直接输div回车是无效的 - 验证是否正常:新建
test.html,输入!+Tab,应生成完整 HTML5 模板;失败则说明 Emmet 链路断了
html.suggest.enabled 和 editor.quickSuggestions 要协同开
这是控制属性值、标签名等语义化建议是否弹出的关键组合。单独开一个,往往没效果。
立即学习“前端免费学习笔记(深入)”;
-
"html.suggest.enabled": true是全局总开关,关了就啥都不提示 -
"editor.quickSuggestions": {"other": true, "strings": true}中的strings: true决定双引号内是否触发建议——比如type="|"或class="|"里能不能出列表 -
"html.suggest.html5": true要打开,否则header、nav等语义标签不会出现在补全列表里 - 改完记得执行
Developer: Reload Window,部分设置热更新不生效
html.autoClosingTag 控制自动闭合,和补全是两回事
输入 <div> 后自动补 <code>



















