vscode 1.60+ 原生支持括号分层着色,需开启 editor.bracketpaircolorization.enabled 和 independentcolors,正确配置 foreground1–3 并确保语言模式匹配,否则颜色失效。

VSCode 1.60+ 版本已原生支持括号颜色分层,不需要装插件——装了反而容易颜色错乱、光标跳动、引导线消失,甚至让配对逻辑直接失效。
editor.bracketPairColorization.enabled 必须为 true
这是括号着色的“总开关”,不是颜色设置,而是决定 VSCode 是否识别并配对括号。关了它,foreground1、foreground2全无效,插件也救不回来。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置,搜bracket pair colorization,确认勾选 - 检查
settings.json里有没有"editor.bracketPairColorization.enabled": false,有就删掉或改成true - 顺手确认
"editor.matchBrackets"是"always"(默认值,但有人手动改过)
independentColors 不开,三层颜色就是摆设
只开 enabled,所有嵌套括号会共用同一组循环色(比如三层都红),根本看不出层级。真正区分第 1 层、第 2 层、第 3 层,必须启用独立着色模式。
- 在设置里搜
independent colors,勾选Editor › Bracket Pair Colorization: Independent Colors - 对应 JSON 是:
"editor.bracketPairColorization.independentColors": true - 不开这个,
foreground1~foreground3就只是变量名,不会被实际使用
自定义 foreground1–foreground3 别写错字段名
VSCode 原生只认 workbench.colorCustomizations.editorBracketHighlight.foreground1 到 foreground3 这三个字段。写 background1 或 editorBracketMatch.background 是旧插件的废弃配置,现在无效,还可能干扰渲染。
- 按
Ctrl + Shift + P输入Preferences: Open Settings (JSON) - 在
workbench.colorCustomizations对象里加这三行(带透明度更护眼):"editorBracketHighlight.foreground1":"#FF996633",<br>"editorBracketHighlight.foreground2":"#66CCFF33",<br>"editorBracketHighlight.foreground3":"#FF66CC33"
- 别漏掉这行:
"editorBracketHighlight.unexpectedBracket.foreground":"#FF3333"—— 多写一个}或少写一个)会立刻标红,比 ESLint 更早发现错配
语言模式错,括号着色直接不触发
VSCode 只对识别为代码的语言启用括号配对逻辑。右下角显示 Plain Text、Vue(但文件是 .js)、HTML(但内容是 JSON)时,{} 和 [] 就不会被处理。
- 点击右下角语言名,手动选对:比如 .ts 文件选
TypeScript,不是Plain Text - .vue 文件默认用 Vue 模式,但
<script></script>块内括号着色依赖typescript或javascript子语言支持;若失效,可安装 Volar 并确保其激活 - 粘贴未保存的代码片段时,VSCode 默认当
Plain Text处理,需先保存为 .js/.ts 再打开
最容易被忽略的是 independentColors 开关和语言模式匹配——很多人配了颜色却全是灰色,问题就出在这两处。原生功能只暴露三层 foreground,第 4 层起自动循环复用,这不是限制,而是有意设计:视觉上超过三层再用新色反而干扰语义判断。











