VSCode 1.67+ 原生括号配对高亮无需插件,需启用 editor.bracketPairColorization.enabled 和 editor.matchBrackets: "always",并配置 workbench.colorCustomizations 中的 editorBracketMatch.* 和 editorBracketHighlight.foreground1-3 控制高亮样式;括号本身不作为独立 token,故 tokenColorCustomizations 无效。

VSCode 1.67+ 原生括号配对高亮已完全可用,无需插件就能实现分层着色;但直接改括号文字颜色不可行,能调的只有匹配时的背景、边框和引导线颜色。
为什么 tokenColorCustomizations 改不了括号颜色
括号((、{、[)在 VSCode 语法解析中不作为独立 token 处理,多数语言里它们被归为 punctuation 或直接跳过 token 化。所以:
- 在
workbench.colorCustomizations里写"punctuation": "#f00"不仅无效,还会把逗号、冒号、分号全染红 -
editor.tokenColorCustomizations对括号完全无响应,这不是配置错误,是设计如此 - 真正控制“光标停在
(上时右边)怎么亮”的,是编辑器渲染层逻辑,只认editorBracketMatch.*系列配置
怎么用原生设置调出有效高亮
VSCode 原生括号高亮依赖两套机制协同:配对识别 + 视觉反馈。必须同时启用并配置:
- 确保
"editor.bracketPairColorization.enabled": true—— 否则连基础配对都检测不到 - 设
"editor.matchBrackets": "always"—— 避免只在光标“靠近”时才触发,延迟或漏响应 - 在
workbench.colorCustomizations中加这三项(不是 background1/2/3,那是旧插件字段):"editorBracketMatch.border": "#ff6b6b""editorBracketMatch.background": "#ff6b6b33""editorBracketHighlight.foreground1": "#ff6b6b" - 前两项控制光标悬停时的边框+背景,第三项才是真正影响第 1 层嵌套括号文字色的唯一入口
颜色复用不是 bug,是刻意限制
VSCode 默认只提供 foreground1 到 foreground3 三个变量,第 4 层开始循环使用 foreground1。这不是功能缺失:
- 实测超过 5 层嵌套后,人眼已难靠颜色区分,反而更依赖
editor.guides.bracketPairs的垂直引导线 - 强行配满 6 个 foregroundX 容易让颜色失去层级语义(比如第 6 层比第 1 层还显眼)
- 若真遇到极端嵌套(如 JSON Schema 或宏展开),优先检查语言模式是否正确——
.vue文件显示为Plain Text时,editor.bracketPairColorization.enabled直接失效
装了插件反而失效?先清冲突
Bracket Pair Colorizer 2、Rainbow Brackets 等插件在 VSCode 1.67+ 上不仅多余,还会干扰原生逻辑:
- 插件与原生功能共存时,常出现配对错位、颜色闪烁、甚至整行括号不响应
- 卸载前务必确认:命令面板输入
Developer: Toggle Developer Tools,看 Console 里有没有bracket pair colorization相关警告 - 主题也可能覆盖效果——某些定制主题会重置
editorBracketMatch颜色,换回GitHub Dark或One Dark Pro即可验证 - 禁用所有括号类插件后,重启 VSCode 再测试,这是排查的第一步,不是最后一步
真正卡住效率的,从来不是“颜色不够多”,而是光标移入括号瞬间,匹配项没立刻高亮——这背后大概率是语言模式错、editor.bracketPairColorization.enabled 被关、或某个插件悄悄劫持了 bracket pair API。











