vscode原生html自动闭合标签功能默认启用,需确认settings.json中"html.autoclosingtag"为true(或未配置)、右下角语言模式为html、禁用auto close tag插件,并在纯html文件中输入后敲>验证。

确认原生功能是否真在工作
VSCode 1.84+ 默认启用 html.autoClosingTag,但很多人改过设置或装了插件,导致它被悄悄关掉。别信 GUI 界面里那个勾选框——它可能只是缓存状态。直接打开 Preferences: Open Settings (JSON),搜这一行:"html.autoClosingTag":
- 如果存在且值为
false,删掉这行或改成true - 如果压根没这行,说明是默认值
true,不用动 - 如果全局和工作区配置同时存在
"html.autoClosingTag": true和"html.autoClosingTag": false,后者会生效,得删掉冲突项
右下角语言模式必须是 HTML
这是最常被忽略的硬性前提:新文件未保存时,默认是 Plain Text,html.autoClosingTag 完全不触发;保存为 .html 后,右下角状态栏必须显示 HTML,不是 HTML (EJS)、Vue 或 PHP:
- 点击右下角文字可手动切换;如果点开后没有
HTML选项,检查files.associations是否把*.html错配成其他语言 ID - 在
.vue或.jsx文件里,html.autoClosingTag天然无效——它们的语言 ID 是vue-html和javascriptreact,不是html
关掉 Auto Close Tag 插件(尤其 VSCode 1.84+)
装了 Auto Close Tag(作者 Jun Han)反而会让自动闭合更不可靠:
- VSCode 1.84 起原生功能已接管,插件会被静默禁用,状态栏看不到图标,但仍在后台加载
- 即使你设了
"auto-close-tag.activationOnLanguage": ["html"],只要html.autoClosingTag是true,插件就不工作 - 更麻烦的是:插件和原生逻辑对
<script></script>、<style></style>的处理方式不同,容易补错或漏补 - 建议直接卸载该插件,或至少在
settings.json中加"html.autoClosingTag": true并确保插件被禁用
输入 <div> 后敲 <code>> 才能验证
别用 Enter 或 Tab 测试,那些行为可能被 Emmet 或 Prettier 劫持:
- 在纯 HTML 文件中,输入
<div>(注意是小于号、字母、大于号) <li>紧接着敲 <code>>,立刻看到补出











