真正起作用的是 vs code 内置设置 editor.autoclosingbrackets,关掉它即可禁用括号自动补全;插件如 bracket pair colorizer 2 或 auto close tag 不控制补全,仅负责着色或标签闭合。

插件本身不控制括号匹配,真正起作用的是 VS Code 内置设置 —— 关掉 editor.autoClosingBrackets 就行,不用动插件。
为什么关插件没用?
很多用户卸载了 Bracket Pair Colorizer 2、Auto Close Tag 或其他“括号相关”插件,结果输入 { 还是自动补全 {|}。这是因为这些插件要么只负责着色(如 Bracket Pair Colorizer)、要么只负责标签闭合(如 Auto Close Tag),而自动补全括号这个行为由 VS Code 原生的 editor.autoClosingBrackets 控制,和插件无关。
常见误操作包括:
- 以为禁用“颜色插件”就能停掉补全,其实颜色和补全是两套机制
- 在 settings.json 中写了
"editor.bracketPairColorization.enabled": false,但这只关高亮,不影响补全 - 只改了某语言专属设置(如
"[javascript]": { "editor.autoClosingBrackets": "never" }),但全局设置仍是languageDefined,优先级更高
怎么真正关掉自动补全?
直接修改全局设置即可,推荐用 JSON 方式确保生效:
- 按
Ctrl + Shift + P(Win/Linux)或Cmd + Shift + P(Mac),输入并选择Preferences: Open User Settings (JSON) - 在
settings.json的{}内添加这一行:"editor.autoClosingBrackets": "never" - 保存文件,新开一个编辑器窗口立即生效
注意:"never" 是唯一能彻底禁用的值;"languageDefined" 和 "always" 都会触发补全,只是时机不同。
引号和其它符号也要一起关吗?
如果你也想禁用 '、"、` 的自动补全,顺手加上这句:
"editor.autoClosingQuotes": "never"
它和 autoClosingBrackets 是独立开关,不联动。另外,editor.surroundingPairs 是只读语言配置项,不要手动改它——那是语法解析层定义的配对规则,强行覆盖反而可能引发光标错位或补全异常。
关了之后还弹窗?检查有没有扩展劫持
极少数插件(比如 Vim 模式插件、某些 AI 补全工具)会监听按键并自行插入符号。如果关掉 editor.autoClosingBrackets 后仍出现自动补全,可以:
- 以安全模式启动 VS Code:
code --disable-extensions,测试是否消失 - 重点排查:Vim、Claude Code、TabNine、GitHub Copilot 等深度集成类插件
- 对 Vim 插件,还需检查
vim.useCtrlKeys和vim.handleKeys是否把)或]映射成了插入动作
最隐蔽的问题是:某个插件在 onType 事件里手动调用了 vscode.languages.registerOnTypeFormattingEditProvider,这种补全不会受 autoClosingBrackets 控制,只能靠禁用对应插件定位。











