输入div按Tab没反应,主因是emmet.triggerExpansionOnTab未启用或文件语言模式不匹配;需确保该设置为true、文件识别为HTML(或vue-html)、且emmet.includeLanguages包含对应映射。

输入 div 按 Tab 没反应?先确认 Emmet 是否真正启用
VS Code 内置 Emmet,但默认行为可能被覆盖或禁用。最常见原因是 emmet.triggerExpansionOnTab 被设为 false,尤其在工作区 settings.json 中被误改。
检查方式:打开设置(Ctrl+,),搜索该配置项;或直接查看 settings.json,确保有:
"emmet.triggerExpansionOnTab": true
- 若为
false,Tab 键只缩进,不展开任何缩写 - 即使
html.suggest.html5开启,div也不会作为补全项出现在提示列表中——那是语言服务,不是 Emmet - 输入后必须按
Tab,Enter或Space不触发 Emmet 展开
.vue 文件里写 HTML 标签不补全?语言模式和 Emmet 映射要配对
VS Code 不会自动把 .vue 当作 HTML 处理,哪怕文件里全是 <template></template>。Volar 插件接管后,原生 html.* 设置基本失效。
两种路径可选:
立即学习“前端免费学习笔记(深入)”;
- 用 Volar:启用
volar.autoInsertEmmetSupport,并确保emmet.includeLanguages包含"vue-html": "html" - 不用 Volar(如旧项目):在
settings.json中显式声明:"files.associations": { "*.vue": "html" },<br>"emmet.syntaxProfiles": { "vue-html": "html" } - 注意:仅改
files.associations不够,emmet.syntaxProfiles必须同步映射,否则ul>li*3在<template></template>里仍不会展开
html.autoClosingTag 和 Emmet 自动闭合是两套机制,别混用
html.autoClosingTag 控制的是输入 <div> 后是否自动插入 <code>



















