必须开启 match_brackets 且设 high_visibility_enabled_by_default 为 true,配合正确语法识别和主题 scope 配置,四者缺一不可。否则括号高亮失效或仅瞬闪。

match_brackets 必须为 true,否则整个链路断掉
光标停在 { 上没反应?第一件事不是装插件,而是确认原生开关开了没。Sublime 的括号高亮底层依赖 match_brackets,它设成 false 或拼错成 match_bracket(少个 s),BracketHighlighter 就连触发信号都收不到。
打开 Preferences → Settings,只看右侧「User Settings」面板,确保有且仅有这一行有效配置:
{"match_brackets": true}
不用重启,保存即生效。别加多余逗号、别套在其他 JSON 里——格式错一丁点,整段配置静默失效。
-
match_brackets_braces和match_brackets_square也建议显式设为true,不然{}和[]可能不响应 -
match_brackets_angle建议保持false,否则 HTML 标签如<div>会频繁误匹配,干扰 JS/Python 编辑 - 右下角语法显示为
Plain Text?手动点它 →Set Syntax: JavaScript,语法识别错,括号规则压根不加载
BracketHighlighter 的 high_visibility_enabled_by_default 是关键
原生 match_brackets 只闪一下,嵌套结构根本没法看。要让高亮“常驻”,必须靠 BracketHighlighter 插件,并且它的 high_visibility_enabled_by_default 必须设为 true。
安装后,打开 Preferences → Package Settings → BracketHighlighter → Settings,检查用户设置里有这行:
"high_visibility_enabled_by_default": true
没这行,高亮就退化成悬停瞬间闪烁,多层 {[()]} 你只能靠猜。
- 确认
"enabled": true没被注释掉,也没写成false - 如果装了 Emmet 或 Vintage 插件,它们会劫持
(、'等输入事件,导致 BracketHighlighter 收不到触发信号;临时禁用验证是否是它在干扰 - 这个设置只影响视觉持续性,和自动补全无关——
auto_match_enabled控制的是输(自动补),别混
主题缺 color scope,高亮就等于没开
BracketHighlighter 靠主题文件里的 brackethighlighter.round、brackethighlighter.curly 这类作用域定义颜色。很多自定义主题压根没写这行,插件 fallback 到极浅灰,看起来像没生效。
快速验证:在 BracketHighlighter 用户设置里加一行:
"color": "#FF5252"
如果边框立刻变红,说明就是主题缺配置——不是插件没装好,也不是设置没开对。
- 推荐换用 One Dark、Monokai 等主流主题,它们已预置完整 scope 定义
- 自己改主题的话,得去
.sublime-color-scheme文件里加对应 scope 的foreground或background - 别指望所有括号类型都同色:圆括号、方括号、大括号默认可设不同颜色,靠
brackethighlighter.round、brackethighlighter.square、brackethighlighter.curly分开控制
语法识别不准,再好的设置也白搭
JSX、Vue 单文件里括号不亮?大概率不是插件问题,而是 Sublime 没正确识别 scope。BracketHighlighter 依赖当前光标所在位置的语法 scope 匹配规则,scope 错了,规则就加载不上。
临时验证:新建一个纯 .js 文件,输入 function test() { return [1, 2]; },把光标精准停在 { 上——如果亮了,说明当前文件的语法识别出问题。
- 右下角点击语法名 →
Set Syntax: JavaScript (Babel)或Vue Component(如果编辑 Vue) - 某些老旧 .tmLanguage 语法包没正确定义
bracketExpressions,导致高亮失效;换官方维护的语法包(如 JavaScript (Babel))更稳 - 字符串或注释里括号本就不该高亮,这是预期行为,不是 bug
多层嵌套逻辑能不能一眼看清,不取决于插件装了多少,而在于 match_brackets 是否真开启、high_visibility_enabled_by_default 是否设对、主题有没有定义对应 scope、语法识别是否准确——四个点漏一个,效果就打折。尤其 high_visibility_enabled_by_default 这个开关,最容易被忽略,但它决定了你是“看一眼”还是“盯三秒才反应过来”。

















