括号高亮“开了却看不见”的主因是match_brackets未启用、high_visibility_enabled_by_default未设置或主题缺失brackethighlighter.curly等scope;需检查语法识别、插件签名、主题配置及输入法状态。

括号高亮“开了却看不见”,90% 不是插件没装,而是 match_brackets 没真开、high_visibility_enabled_by_default 没设、或当前主题压根没定义 brackethighlighter.curly 这类 scope。
怎么确认 match_brackets 真生效了?
原生括号匹配是 BracketHighlighter 的启动前提。它不开,插件连触发都收不到。
-
match_brackets必须显式写进用户设置(Preferences → Settings 右侧面板),拼成match_bracket或漏掉s就静默失效 - 建议一次性配齐这几项(JSON 合法,前后别多逗号):
"match_brackets": true,<br>"match_brackets_braces": true,<br>"match_brackets_square": true,<br>"match_brackets_content": true,<br>"match_brackets_angle": false
- 改完保存即生效;若右下角语法显示为
Plain Text,match_brackets规则根本不会加载
BracketHighlighter 安装后没反应?先查 Package Control 和开关链
手动拖文件进 Packages/ 目录几乎必然失败——Sublime Text 4+ 拒绝未签名插件。
- 按
Ctrl + `打开控制台,输入import package_control;报ModuleNotFoundError说明它坏了 - 重装用这行(Sublime Text 4 推荐):
import urllib.request,os,hashlib; exec(urllib.request.urlopen('https://packagecontrol.io/installation.py').read().decode('utf-8')) - 装好后,
Ctrl + Shift + P能搜到Package Control: Install Package才算真正就绪 - 安装
BracketHighlighter后,打开Preferences → Package Settings → BracketHighlighter → Settings,确保:"enabled": true,<br>"high_visibility_enabled_by_default": true
高亮颜色太淡或完全看不见?主题缺 scope 是主因
BracketHighlighter 不自己画颜色,它只告诉 Sublime:“请用 brackethighlighter.round 这个 scope 的样式来渲染”。主题里没这行,就 fallback 到极浅灰。
- 临时验证:菜单 →
Color Scheme→ 切到Adaptive或Monokai,立刻变清晰 → 坐实是当前主题缺配置 - 长期解决:用
PackageResourceViewer: Open Resource复制当前主题到Packages/User/,在rules数组里加一段:{<br> "scope": "brackethighlighter.round",<br> "foreground": "#FF5252",<br> "style": "outline"<br>} - 注意:
brackethighlighter.curly、brackethighlighter.square得一并补全,否则只改了(),{}还是隐形
为什么光标停在 { 上没反应?先排除语法和输入干扰
BracketHighlighter 依赖当前光标所在 syntax scope。JSX、Vue、Markdown 中不亮,大概率不是插件问题,而是 scope 识别失败。
- 临时验证:新建一个
.js文件,把光标精准停在{字符上(不能停在空格、换行、或选中状态下)——亮了,说明当前文件语法识别出错 - 右下角点击语法名,手动切换为
JavaScript或Python;若显示Plain Text,所有括号功能都会退化 - Emmet 插件会劫持
(输入事件,导致 BracketHighlighter 收不到触发信号;可临时禁用 Emmet 验证 - 输入的是中文全角括号
(),Sublime 一律不处理——确保输入法处于英文状态
最常被忽略的点:括号高亮效果高度依赖语法高亮引擎的准确解析。哪怕配置全对,只要文件后缀没关联对语法(比如 .vue 被识别为 Plain Text),整个链路就断在第一环。











