BracketHighlighter不生效需检查三处:一是用户配置中"enabled": true未开启;二是"high_visibility_enabled_by_default": true缺失导致高亮不持续;三是主题未定义对应scope色值或scope匹配失败。

BracketHighlighter 装了没反应?先查这三处硬性开关
Sublime 默认的 match_brackets 只是短暂闪烁,真要“持续高亮+带边框+分颜色”,必须用 BracketHighlighter——但装完不生效,90% 是卡在这三个地方:
-
"enabled": true没开:进 Preferences → Package Settings → BracketHighlighter → Settings,确认用户配置里有这一项且值为true -
"high_visibility_enabled_by_default": true缺失:不设这个,高亮只在悬停瞬间闪一下,嵌套结构根本看不清 - 主题没定义对应 scope:比如你配了
"color": "brackethighlighter.curly",但当前主题的.sublime-color-scheme文件里压根没声明brackethighlighter.curly,结果 fallback 到灰色,看起来像“没高亮”
括号类型不亮(比如 Vue 里的 {} 或 JSX 表达式)?检查语法 scope 排除
光标放在 { 上没反应,不是插件坏了,而是 BracketHighlighter 默认按当前光标所在 syntax scope 匹配规则。Vue/JSX 中的 {} 属于 source.js.embedded.html 这类嵌套 scope,原生规则不覆盖。
- 打开命令面板,输入
View Package File→ 找到BracketHighlighter/bh_core.sublime-settings - 在用户配置中加一条:
"scope_exclude": ["text.html"](或更精准地排除"source.js.embedded.html") - 或者直接启用语言适配:添加
"language_filter": "whitelist"和"languages": ["JavaScript", "Vue Component"]
颜色太淡、边框看不见?绕过主题依赖,直接写十六进制色值
别折腾主题文件里加 brackethighlighter.* 的 scope 定义——很多自定义主题根本不维护这些,改了也白改。最稳的办法是跳过主题色板,直给颜色。
- 在 BracketHighlighter 用户设置里,把
"color"改成十六进制值,例如:"color": "#FF5733" - 想让花括号带实线边框?配
"style": "outline",再加"underline": false避免干扰 - 注意:
"round"、"curly"、"square"这些键名必须和插件内置定义完全一致,大小写都不能错
为什么 Ctrl+M 跳转正常但高亮不持续?可能是 match_brackets 被关了
Ctrl+M 依赖 Sublime 原生匹配逻辑,而 BracketHighlighter 的高亮需要它作为底层支撑。如果 "match_brackets": false,插件连括号位置都识别不了。
- 打开 Preferences → Settings,右侧用户配置中必须有:
"match_brackets": true - 顺手加上:
"match_brackets_content": true(高亮括号内整块)、"match_brackets_braces": true(确保{}生效) - 尖括号
建议关掉:"match_brackets_angle": false,否则 HTML 标签会频繁误触发,干扰 JS/TS 代码阅读
真正麻烦的不是装插件,而是 BracketHighlighter 的高亮行为同时受 Sublime 原生设置、插件自身开关、主题 color scheme、当前文件 syntax scope 四层影响。漏掉任意一层,都会出现“明明装了却像没装”的情况。










