match_brackets 必须设为 true,否则括号高亮不会触发;需同时配置 match_brackets_content 和 match_brackets_angle,并通过配色方案或 BracketHighlighter 插件分别定制颜色与样式。

match_brackets 必须设为 true,否则高亮根本不会触发
这是所有括号高亮的前提,不是可选项。它控制光标停在 (、[、{ 上时,配对括号是否被标记。常见错误是拼成 match_bracket(少 s),或误关该选项。
务必检查 Preferences → Settings(用户设置)中包含:
{
"match_brackets": true,
"match_brackets_content": true,
"match_brackets_angle": false
}
-
match_brackets_content开启后,两个括号之间的整块内容(如函数体、if 块)也会被背景高亮 -
match_brackets_angle建议保持false,否则 HTML 标签如<div>会频繁误触发,干扰 JS/Python 编辑
颜色由配色方案文件决定,不是用户设置能改的
你改 Preferences.sublime-settings 里的任何字段,都不会影响括号的底色或文字色——因为原生高亮的颜色写死在当前生效的 .sublime-color-scheme 或 .tmTheme 文件里。
操作路径:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Color Scheme,选Open Color Scheme - 看右下角状态栏显示的实际路径;若不在
Packages/User/下,说明你在用只读主题,必须先复制到User/目录再编辑 - 搜索
"scope": "bracket"或"name": "Bracket",找到类似结构:
{
"name": "Bracket Highlight",
"scope": "bracket",
"foreground": "#FFFFFF",
"background": "#3366FF"
}
-
background控制匹配括号的底色,foreground控制括号字符本身的颜色 - 有些主题会拆开定义:
bracket.round、bracket.square、bracket.curly,需一并修改,否则只有圆括号变色
BracketHighlighter 插件的颜色和样式完全独立于主题
如果你装了 BracketHighlighter(注意大小写,不是旧版 bracket_highlighter),它的高亮不走 bracket scope 渲染逻辑,而是自己画边框或加粗——所以你改 background 对它完全无效。
它的颜色由 bracket_styles 中的 color 和 style 决定:
- 推荐
style: "outline"(实线边框),比默认"solid"更醒目,尤其在深色主题下 -
color支持十六进制(如"#FF5733")或预设名(如"yellow") - 不同括号类型要分开定义:在
bracket_styles里分别配"round"、"square"、"curly",否则全用default
配置位置:菜单 → Preferences → Package Settings → BracketHighlighter → Settings,示例:
"bracket_styles": {
"round": {"color": "yellow", "style": "outline"},
"square": {"color": "cyan", "style": "outline"},
"curly": {"color": "magenta", "style": "outline"}
}
high_visibility_enabled_by_default 要设为 true 才能常驻高亮
原生 match_brackets 只在光标悬停时短暂高亮;要实现“光标移开仍可见”“多层嵌套不同颜色”,必须靠 BracketHighlighter 的持续高亮能力。
关键开关:
-
high_visibility_enabled_by_default设为true,让高亮常驻(不依赖光标悬停) -
high_visibility_style推荐"outline",避免和代码背景融掉 - 如果想区分嵌套层级,还需启用
bracket_highlighting_mode并配合bracket_styles中的priority字段(高级用法,易被忽略)
最后提醒:改完配色方案或插件设置后,保存即生效,无需重启 Sublime Text;但若发现没变化,先确认右下角语法识别是否准确——view.settings().get('syntax') 返回空或错误值,所有 syntax-specific 配置都会失效。


















