html.suggest.html5必须为true才能提示header、nav等语义化标签,关闭后仅剩Emmet缩写;Emmet Tab展开需启用emmet.triggerExpansionOnTab;非.html文件须配置emmet.includeLanguages或files.associations以启用HTML补全。

html.suggest.html5 必须为 true 才能提示原生标签
VS Code 默认不关闭这项,但装了精简插件(比如只留 Emmet 的配置)后它常被设成 false。关掉后,header、nav、main 这类语义标签完全不会出现在补全列表里,你只能靠 Emmet 缩写(如 nav→Tab)硬记——这不是补全,是缩写展开。
打开设置(Ctrl+, 或 Cmd+,),搜 html.suggest.html5,勾选;或直接在 settings.json 里加一行:
"html.suggest.html5": true
注意:html.suggest.experimental.customHtml5 是实验性开关,控制 input 的 type 枚举值(如 date、email)提示,目前仍不稳定,不建议依赖。
Emmet 的 Tab 补全必须显式启用
很多人输完 ul>li*3 按 Tab 没反应,第一反应是“Emmet 坏了”,其实是 emmet.triggerExpansionOnTab 被设成了 false。这个值一关,Tab 就只剩缩进功能,Emmet 彻底静默。
立即学习“前端免费学习笔记(深入)”;
确认方式:设置里搜 emmet.triggerExpansionOnTab,确保开启;或在 settings.json 加:
实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。
"emmet.triggerExpansionOnTab": true
- 触发缩写必须用
Tab,不是Enter或空格 - 如果文件右下角语言模式不是
HTML(比如显示Plain Text或Vue),Emmet 默认不工作——得配files.associations或emmet.includeLanguages
非 .html 文件(如 .vue)要手动关联 HTML 语言模式
在 .vue 文件的 <template></template> 区域写 HTML,VS Code 默认不认为这是 HTML 上下文,Emmet 和原生标签补全都失效。
解决方法是在 settings.json 中明确告诉编辑器:“这类文件的模板部分,按 HTML 处理”:
"emmet.includeLanguages": { "vue-html": "html", "vue": "html" },<br>"files.associations": { "*.vue": "html" }
注意顺序:emmet.includeLanguages 管的是语言块内嵌内容(如 <template></template>),files.associations 是整文件映射。两者常一起用,但作用不同。
补全没弹出来?先看右下角语言模式和快捷键触发逻辑
补全窗口不出现,90% 是因为当前文件没被识别为 HTML。右下角状态栏点一下语言标识,选 “Configure File Association for ‘.xxx’” → 设为 HTML。
另外,editor.quickSuggestions 控制是否自动弹出建议框(默认开),而 editor.suggestOnTriggerCharacters 决定输入 后是否立刻触发——如果关了,你就得手动按 <code>Ctrl+Space 唤出补全菜单。
别忽略这些细节:补全不是“开了就永远有”,它依赖语言模式 + 触发字符 + 设置三者同时在线。一个断链,整个链路就失效。


















