sublime text 的彩虹括号需同时满足三项条件:match_brackets 为 true、high_visibility_enabled_by_default 为 true、主题定义 brackethighlighter.level.1 至 level.6 作用域;层级颜色非自动分配,须手动映射且依赖正确语法模式与空格缩进。

Sublime Text 本身不支持彩虹括号,BracketHighlighter 插件只是标记括号层级,颜色全靠主题文件里 brackethighlighter.level.1 到 brackethighlighter.level.6 这些作用域定义——没配色,就永远是同一灰;配了但层级没映射对,照样单色。
BracketHighlighter 安装后括号不亮?先确认三个硬性条件
它不是独立运行的高亮器,而是依赖原生匹配结果做视觉强化。以下三项必须同时满足:
-
match_brackets必须设为true(在Preferences → Settings的 User Settings 里直接写) -
high_visibility_enabled_by_default必须为true,否则只悬停瞬间闪一下,无法观察嵌套结构 - 当前主题必须定义了
brackethighlighter.*类 color scope(比如brackethighlighter.round),很多自定义主题压根没写这一行,导致 fallback 成极浅灰
level_1–level_6 不是自动分级开关,是手动映射表
level_1–level_6 不是插件自动按嵌套深度分配颜色的“开关”,而是告诉插件:“第 1 层括号用 level_1 样式,第 2 层用 level_2……”——但前提是插件得能算出哪层是 level_1。这个计算依赖两个条件:high_visibility_enabled_by_default 为 true,且当前语法作用域(如 source.js)被插件识别为支持嵌套高亮。
-
bracket_styles中必须显式写全level_1到level_6,漏一个就会 fallback 到default,导致该层变回默认灰 - 缩进必须用空格,不能用 Tab,否则 Sublime 直接忽略整个配置块
- 保存后要关闭再重开文件才生效,重启 Sublime 有时也不管用
主题里缺 brackethighlighter.level.* 作用域?别硬改 .tmTheme
直接编辑主题文件风险高,容易破坏其他语法高亮。更稳妥的做法是用 PackageResourceViewer 提取当前主题,再在 Packages/User/ 下新建同名文件覆盖。
- 例如你用的是
Monokai.sublime-color-scheme,就在Packages/User/Monokai.sublime-color-scheme里添加brackethighlighter.level.1到level.6的 color 定义 - 每个 level 对应一个 hex 颜色值(如
"#FF6188"、"#AB9DF2"),顺序错或重复会导致视觉混乱 - 别忘了在用户设置中同步启用:在
bracket_styles里把level_1–level_6的color值分别设为"brackethighlighter.level.1"等
最常被忽略的是:括号层级计算依赖语法作用域识别,而 Plain Text 模式下 source.js 等规则根本不加载——右下角看一眼语法名,点一下就能切回正确模式。











