Emmet 未启用或配置错误导致 按 Tab 无反应;需开启 "emmet.triggerExpansionOnTab": true,设语言模式为 HTML 或在 Vue 中配置 "emmet.includeLanguages": {"vue-html": "html"} 并重载窗口。

为什么输入 <di></di> 按 Tab 没反应?先确认 Emmet 是否启用
VS Code 的 HTML 标签补全(如 <div>、<code><header></header>)几乎全部由 Emmet 驱动,不是语言服务原生提供。输完 <di></di> 按 Tab 无响应,90% 是因为 Emmet 展开被关了。
-
"emmet.triggerExpansionOnTab": true必须为true;设为false后,Tab 对任何缩写都失效 -
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFiles"推荐设为此值;若设为"never",连<di></di>都不会提示<div> <li>右下角状态栏语言模式必须是 <code>HTML;如果是.vue文件,默认不触发 Emmet,需额外配"emmet.includeLanguages": {"vue-html": "html"} - 改完 settings.json 后,执行
Developer: Reload Window,否则部分设置不生效 - 要启用标准值补全,必须开启
"html.suggest.html5": true - 同时确保
"editor.quickSuggestions": {"strings": true},否则引号内根本不会弹建议框 - 若用 Vue 单文件组件,仅配
emmet.includeLanguages不够,还需"html.suggest.html5": true在.vue中才生效 - 别依赖插件“暴力穷举”,W3C 标准值(如
search、color、week)有浏览器兼容差异,补全列表应来自语言服务器解析 AST,而非硬编码 - 安装扩展
Auto Rename Tag(作者: Jun Han),当前最新版 0.1.10,适配 VS Code 1.117+ - 无需配置,默认启用;在
HTML、Vue、Svelte文件中均有效 - 注意:它只作用于成对标签,自闭合标签(如
<input>)或 JSX 中的<div></div>不触发 - 如果和 Prettier 冲突(比如格式化后标签名被重置),可在
settings.json加"auto-rename-tag.activationOnLanguage": ["html", "vue"]显式限定范围
input type="|" 引号内不提示 text/password/email?这是默认行为
原生 VS Code HTML 语言服务对 type 这类语义强、取值受限的属性,不做主动枚举补全——它把 type="xxx" 当作普通字符串处理,而非 W3C 定义的 18 种合法值域。这不是 bug,是设计上的“保守策略”。
修改标签名时前后不联动?装 Auto Rename Tag 就行
VS Code 原生不支持修改开始标签后自动同步结束标签,比如把 <div>...</div> 改成 <section>...</section>,必须手动改两处。



















