输入没反应,因Emmet未启用:需确认"emmet.triggerExpansionOnTab":true、"emmet.showExpandedAbbreviation":"inMarkupAndStylesheetFiles",右下角语言模式为HTML,.vue等文件须配"emmet.includeLanguages":{"vue-html":"html"},改配置后需Developer:Reload Window。

为什么输入 没反应?先确认 Emmet 是否启用VS Code 的 HTML 标签补全本质是 Emmet 驱动的,不是语言服务原生行为。输完 没提示 ,大概率是 Emmet 展开被关了。
-
"emmet.triggerExpansionOnTab": true 必须开启——关掉后按 Tab 无法展开任何缩写(包括 div → )
-
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFiles" 不能设为 "never",否则连初始补全候选都不显示
- 右下角语言模式必须是
HTML;如果是 .vue 或 .svelte 文件,Emmet 默认不生效,需加配置:"emmet.includeLanguages": {"vue-html": "html"}
- 改完 settings.json 后,执行
Developer: Reload Window,否则部分设置不生效
html.autoClosingTag 和自动闭合是两回事
输入 后想自动补上
,靠的是独立开关 html.autoClosingTag,它和标签补全、Emmet 完全无关。
- 确保
"html.autoClosingTag": true —— 这是唯一控制“键入开始标签即自动插入结束标签”的设置
- VS Code 1.84+ 内置该功能后,与 Auto Close Tag 插件冲突;若装了该插件,建议关掉内置项:
"html.autoClosingTag": false,再由插件接管
-
<script></script>、 默认不闭合,需额外配置:"auto-close-tag.SublimeTextMode": true 或显式列出激活语言
class="|" 里不提示项目 CSS 类名?原生不支持,必须装插件
VS Code 自带 HTML 补全只识别标准标签和属性,对 class 值不做语义分析——它根本没读你的 tailwind.css 或 utils.scss。
- 装插件:
IntelliSense for CSS class names in HTML(注意名字含 in HTML,别装错)
- 启用两个关键设置:
"editor.suggest.showClasses": true + "editor.quickSuggestions.strings": true
- Tailwind 用户必须在项目根目录有
tailwind.config.js,否则插件无法识别工具类
- 样式文件不在默认路径(如
assets/styles/)?加配置:"css.styleSheets": ["assets/styles/*.css"]
input type="|" 不提示 text/email?这是 W3C 枚举值补全,需语言服务支持
这不是符号补全,而是对 HTML 属性合法取值的语义感知。原生 VS Code HTML 语言服务对此支持极弱,只覆盖极少数通用属性(如 id、class)。
-
type、autocomplete、loading、formmethod 等专用枚举属性,默认不会弹出选项
- 目前无轻量插件能稳定覆盖全部 W3C 枚举;较可靠方案是用
HTML Boilerplate 或自定义 Emmet 缩写(如 input:text → )
- 若依赖强语义补全,建议切换到 WebStorm——其 HTML 语言服务对枚举值索引更完整
实际补全效果高度依赖语言模式、插件协同与设置组合,单点开启往往无效。最容易被忽略的是:改了 settings.json 不 reload window,或在 .vue 文件里忘了配 emmet.includeLanguages。
VS Code 的 HTML 标签补全本质是 Emmet 驱动的,不是语言服务原生行为。输完 输入 VS Code 自带 HTML 补全只识别标准标签和属性,对 这不是符号补全,而是对 HTML 属性合法取值的语义感知。原生 VS Code HTML 语言服务对此支持极弱,只覆盖极少数通用属性(如
实际补全效果高度依赖语言模式、插件协同与设置组合,单点开启往往无效。最容易被忽略的是:改了 settings.json 不 reload window,或在 .vue 文件里忘了配 没提示
"emmet.triggerExpansionOnTab": true 必须开启——关掉后按 Tab 无法展开任何缩写(包括 div → )"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFiles" 不能设为 "never",否则连初始补全候选都不显示HTML;如果是 .vue 或 .svelte 文件,Emmet 默认不生效,需加配置:"emmet.includeLanguages": {"vue-html": "html"}
Developer: Reload Window,否则部分设置不生效
html.autoClosingTag 和自动闭合是两回事,靠的是独立开关
html.autoClosingTag,它和标签补全、Emmet 完全无关。
"html.autoClosingTag": true —— 这是唯一控制“键入开始标签即自动插入结束标签”的设置"html.autoClosingTag": false,再由插件接管<script></script>、 默认不闭合,需额外配置:"auto-close-tag.SublimeTextMode": true 或显式列出激活语言
class="|" 里不提示项目 CSS 类名?原生不支持,必须装插件class 值不做语义分析——它根本没读你的 tailwind.css 或 utils.scss。
IntelliSense for CSS class names in HTML(注意名字含 in HTML,别装错)"editor.suggest.showClasses": true + "editor.quickSuggestions.strings": true
tailwind.config.js,否则插件无法识别工具类assets/styles/)?加配置:"css.styleSheets": ["assets/styles/*.css"]
input type="|" 不提示 text/email?这是 W3C 枚举值补全,需语言服务支持id、class)。
type、autocomplete、loading、formmethod 等专用枚举属性,默认不会弹出选项HTML Boilerplate 或自定义 Emmet 缩写(如 input:text → )emmet.includeLanguages。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











