auto close tag插件不生效主因是vscode 1.84+内置html.autoclosingtag冲突,需禁用内置功能并确认语言模式为html;script/style闭合需开启sublimetextmode或指定activationonlanguage;vue/jsx需扩展语言支持;光标错乱应关闭formatontype并设固定tabsize。

Auto Close Tag插件为什么经常不生效
插件装了但敲 <div> 没反应,大概率是它被其他插件或VSCode原生功能压制了。VSCode 1.84+ 内置了 <code>html.autoClosingTag,默认开启,会和 Auto Close Tag 冲突——后者反而被禁用。
实操建议:
- 关掉内置补全:
"html.autoClosingTag": false加到settings.json - 确认 Auto Close Tag 插件已启用(右下角状态栏有
ACT图标) - 检查当前文件语言模式是不是
html:右下角点开语言标识,选“HTML”,别是“Plain Text”或“PHP” - 如果用 Prettier 或 Emmet,它们也可能劫持输入行为;临时禁用测试是否冲突
怎么让 <script></script> 和 <style></style> 也自动闭合
默认只对标准 HTML 标签生效,<script></script>、<style></style> 这类“双标签但常自闭合”的场景需要手动开开关。
实操建议:
- 在
settings.json中加配置:"auto-close-tag.SublimeTextMode": true—— 这个模式会更激进地匹配成对标签 - 或者单独指定标签列表:
"auto-close-tag.enableAutoCloseTagWithTab": true+"auto-close-tag.activationOnLanguage": ["html", "vue", "javascript"] - 注意:
<img>、<input>这类自闭合标签不会额外补,插件本身识别语义,不用担心
Vue / JSX 文件里 <template></template> 或 <div> 不闭合?
<p>Vue 单文件组件中,<code><template></template> 块内用的是 HTML 语法,但 VSCode 可能按 vue 语言模式加载,而 Auto Close Tag 默认只监听 html。
实操建议:
- 在设置里显式加入语言支持:
"auto-close-tag.activationOnLanguage": ["html", "vue", "javascriptreact"] - 确保
lang="html"的<template></template>被正确识别;如果写了lang="pug",那就不归它管 - JSX 中的
<div> 属于 JavaScript 语法范畴,Auto Close Tag 不处理;得靠 ESLint + Prettier 或 TypeScript 插件来校验 <h3>补全后光标位置错乱或多出空格</h3> <p>典型现象是输完 <code><div> 回车,光标卡在 <code>











