auto close tag没反应需先禁用vscode内置html.autoclosingtag并全窗口重启;script/style不闭合须启用sublimetextmode;vue/jsx需配置activationonlanguage支持;光标错乱应关闭formatontype并设固定tabsize。

Auto Close Tag没反应?先关掉 VSCode 内置的 html.autoClosingTag
VSCode 1.84+ 默认开启内置标签闭合,它会静默接管所有 HTML 文件的补全逻辑,导致 Auto Close Tag 插件完全不工作——状态栏右下角看不到 ACT 图标,敲 <div> 也没反应。这不是插件装错了,是 VSCode 自己先占了位置。
<p>必须手动禁用内置功能:</p>
<ul>
<li>打开命令面板(<code>Cmd + Shift + P 或 Ctrl + Shift + P)→ 输入 Preferences: Open Settings (JSON)
settings.json 中添加:"html.autoClosingTag": false
<script></script> 和 <style></style> 不闭合?开 SublimeTextMode
插件默认跳过 <script></script>、<style></style>,因为它们在 HTML 规范中允许自闭合写法(<script></script>),语义上不算“必须成对”。要强制补全,得启用更激进的匹配模式:
- 在
settings.json中加:"auto-close-tag.SublimeTextMode": true - 该模式以输入
为触发点,主动推断并补全标签名(比如输就弹出) - 必须配合
"html.autoClosingTag": false使用,否则两者逻辑冲突 -
<img>、<input>等真自闭合标签仍不会多出,插件的语义识别是可靠的
.vue 和 .jsx 文件里不生效?改 activationOnLanguage
VSCode 把 .vue 文件识别为 vue 语言,把 .jsx 识别为 javascriptreact,而 Auto Close Tag 默认只监听 html 类型。需显式声明支持范围:
- 在
settings.json中添加:"auto-close-tag.activationOnLanguage": ["html", "vue", "javascriptreact"] -
javascriptreact是 VSCode 对 JSX 的内部语言 ID,别写成jsx或react - Vue 单文件组件中,只有
<template lang="html"></template>块内才生效;若写了lang="pug"或lang="ts",插件不介入 - JSX 标签结构建议交给 TypeScript 或 ESLint + Prettier 校验,Auto Close Tag 不处理 JavaScript 语法层的标签结构
补全后光标卡住或缩进错乱?关 editor.formatOnType 并设固定 tabSize
典型现象:输完 <div> 回车,光标停在 <code>











