VSCode HTML自动补全失效主因是语言模式非HTML、emmet.triggerExpansionOnTab为false或html.suggest.html5为false;需切换右下角语言模式为HTML,启用Emmet Tab触发,确保html.suggest.html5为true。

VSCode 写 HTML 找不到自动补全,90% 是语言模式没对上、emmet.triggerExpansionOnTab 被关了,或者 html.suggest.html5 被设为 false —— 不是插件坏了,也不是要重装。
右下角状态栏显示的不是 HTML?立刻切语言模式
VSCode 的 HTML 补全只在语言模式为 HTML 时激活。如果你打开的是 test.vue、index.jsx 或无后缀文件,右下角显示 Plain Text、JavaScript 或 Vue,补全就直接失效。
- 点击右下角语言标识 → 选
Configure File Association for '.xxx'→ 设为HTML - 或按
Ctrl+Shift+P(Windows/Linux)/Cmd+Shift+P(macOS)→ 输入Change Language Mode→ 选HTML - 对
.vue文件,仅改关联不够:Volar 插件启用后会接管补全逻辑,此时必须开启volar.autoInsertEmmetSupport,否则emmet.includeLanguages配置可能被忽略
按 Tab 没反应?检查 Emmet 触发开关和缩写输入习惯
div + Tab 不展开,大概率是 emmet.triggerExpansionOnTab 被设为 false,尤其常见于工作区 settings.json 中被覆盖。
- 搜索设置项
Emmet: Trigger Expansion On Tab,确保勾选(即值为true) - 输入缩写后必须用
Tab,Enter或Space不触发 Emmet 展开(Enter换行,Space插入空格并中断缩写) - 输到一半想补全(如
nav后想看<nav></nav>),得先按Ctrl+Space唤出建议菜单,再选 Emmet 项;不能只靠Tab - 若用了 Vim 插件,
Tab可能被劫持,可临时禁用测试,或改用Ctrl+Enter尝试 Emmet 展开
class="" 里不提示 CSS 类名?原生不支持,靠插件+路径配置
VSCode 原生 HTML 补全完全不读你的 CSS 文件,class="" 里的值默认只提示基础单词(比如你之前输过 btn,它就记下来),不会列出 src/styles/button.css 里的 btn-primary。
立即学习“前端免费学习笔记(深入)”;
- 必须安装插件:
IntelliSense for CSS class names in HTML(支持 CSS/SCSS/Less)或Tailwind CSS IntelliSense(Tailwind 专用) - 插件默认只扫描
./src/**/*.css,若样式在assets/styles/下,需加配置:"css.styleSheets": ["assets/styles/*.css"] - 开启自动弹出:
editor.suggest.showClasses设为true,且editor.quickSuggestions.strings设为true - CSS-in-JS(如
styled-components)、@apply、动态拼接类(clsx())均无法识别,这类场景只能放弃自动补全或定制插件
补全出来了但标签不自动闭合?确认 html.autoClosingTag 独立开关
标签补全(输入 div 提示 <div>)和自动闭合(输入 <code><div> 后自动补 <code>



















