右下角显示 Plain Text 时,需点击状态栏语言标识手动切换为 HTML,或按 Ctrl+Shift+P 输入 Change Language Mode 选择 HTML;未保存文件常被识别为 Plain Text,应先保存为 .html/.htm 后缀。

右下角显示 Plain Text?先确认语言模式是否为 HTML
VS Code 不靠插件“识别 HTML”,而是根据文件后缀和首行内容自动判断。如果状态栏显示 Plain Text、PHP 或其他语言,说明它根本没把当前文件当 HTML 处理,后续所有补全(标签、属性、Emmet)都会失效。
- 点击右下角语言标识,手动选
HTML;或按Ctrl+Shift+P(Win/Linux)/Cmd+Shift+P(macOS),输入Change Language Mode,再选HTML - 未保存的文件(如 Untitled-1)常被识别为
Plain Text,务必先保存为.html或.htm后缀 - 若文件是模板类(如
.vue、.jsx、.md),原生 HTML 服务不生效,需靠对应插件或显式配置emmet.includeLanguages
输入 原生 HTML 补全依赖两个开关:语言服务是否启用 HTML5 语义支持,以及 Emmet 是否被允许触发。关掉任一,<di> 就不会提示 <code><div>。
<ul>
<li>
<code>html.suggest.html5 必须设为 true(默认开启,但可能被误关)——它控制 <section></section>、contenteditable 等 HTML5 特有标签和属性的补全
emmet.triggerExpansionOnTab 必须为 true,否则 div.container 按 Tab 不展开
emmet.showExpandedAbbreviation 别设成 "never",否则连 <di> 这种基础前缀提示都不会出现</di>
html:5 缩写不生效?emmet.includeLanguages 是关键
html:5 不是默认缩写,VS Code 默认只对 .html 文件启用基础 Emmet(如 div→<div></div>),骨架命令需额外声明映射。
- 打开
settings.json(Ctrl+Shift+P → Preferences: Open Settings (JSON))
- 添加:
"emmet.includeLanguages": {"html": "html"} —— 注意键名必须是 "html",不是 "HTML" 或 "htm"
- 保存后,在已保存的
.html 文件中,输入 html:5 + Tab,即可生成含 <meta charset="UTF-8"> 和 <meta name="viewport"> 的完整结构
class="" 里不提示类名?这不是 VS Code 原生能力
VS Code 默认完全不解析 CSS 文件,所以 class="btn-" 不会提示 btn-primary。这是设计使然,不是配置遗漏。
立即学习“前端免费学习笔记(深入)”;
- 必须安装插件
IntelliSense for CSS class names in HTML(GitHub 星标超 3.5k)
- 启用后默认扫描项目根目录下的
*.css、*.scss、*.less,但不处理 JS 动态拼接的类(如 clsx())
- 若用 Tailwind,还需项目根目录存在
tailwind.config.js,否则插件只认你 CSS 文件里实际声明过的类
真正容易被忽略的是:**语言模式切换后,部分设置(如 Emmet 映射)要重启编辑器或新开文件才生效;而大文件(>5MB)会直接导致 HTML 语言服务降级,补全、悬停、诊断全部失灵——此时删减内容或临时禁用语言服务反而更高效。**
原生 HTML 补全依赖两个开关:语言服务是否启用 HTML5 语义支持,以及 Emmet 是否被允许触发。关掉任一,<di> 就不会提示 <code><div>。
<ul>
<li>
<code>html.suggest.html5 必须设为 true(默认开启,但可能被误关)——它控制 <section></section>、contenteditable 等 HTML5 特有标签和属性的补全
emmet.triggerExpansionOnTab 必须为 true,否则 div.container 按 Tab 不展开emmet.showExpandedAbbreviation 别设成 "never",否则连 <di> 这种基础前缀提示都不会出现</di>
html:5 缩写不生效?emmet.includeLanguages 是关键
html:5 不是默认缩写,VS Code 默认只对 .html 文件启用基础 Emmet(如 div→<div></div>),骨架命令需额外声明映射。
- 打开
settings.json(Ctrl+Shift+P→Preferences: Open Settings (JSON)) - 添加:
"emmet.includeLanguages": {"html": "html"}—— 注意键名必须是"html",不是"HTML"或"htm" - 保存后,在已保存的
.html文件中,输入html:5+Tab,即可生成含<meta charset="UTF-8">和<meta name="viewport">的完整结构
class="" 里不提示类名?这不是 VS Code 原生能力
VS Code 默认完全不解析 CSS 文件,所以 class="btn-" 不会提示 btn-primary。这是设计使然,不是配置遗漏。
立即学习“前端免费学习笔记(深入)”;
- 必须安装插件
IntelliSense for CSS class names in HTML(GitHub 星标超 3.5k) - 启用后默认扫描项目根目录下的
*.css、*.scss、*.less,但不处理 JS 动态拼接的类(如clsx()) - 若用 Tailwind,还需项目根目录存在
tailwind.config.js,否则插件只认你 CSS 文件里实际声明过的类



















