Sublime Text 修改选中高亮色需编辑当前 .sublime-color-scheme 文件的 "rules" 数组,添加含 "name": "Selection" 和合法十六进制 "background" 的规则,不可放于 "globals" 或使用透明度 hex。

Sublime Text 默认的选中高亮色在某些配色方案下确实很难看清,尤其是浅色主题或高对比度显示器上。selection 的背景色不是靠改“主题文件”就能直接生效的,必须修改当前启用的 .sublime-color-scheme 文件——而且得改对位置、用对 key。
怎么找到并编辑当前 color scheme 文件
Sublime Text 4(v4143+)强制使用 JSON 格式的 .sublime-color-scheme,旧版的 .tmTheme 已不被支持。别去动 Preferences → Color Scheme 里显示的路径,那个只是只读预览。
- 打开
Preferences → Browse Packages…,进入Packages/目录 - 找到你当前用的主题文件夹(比如
Material Theme/或Default/),里面会有类似Material-Theme-Darker.sublime-color-scheme的文件 - 如果用的是内置主题(如
Adaptive或Monokai),需先复制一份到User/目录再改:用Preferences → Color Scheme点开当前主题 → 右键 →Copy to Packages/User - 用 Sublime 自己打开这个副本,在
"rules"数组末尾添加新规则(不能放在"globals"下)
设置 selection 背景色的关键 rule 写法
选中区域的颜色由 selection scope 控制,但 Sublime 不认 selection 这个名字作为 scope,必须用 "scope": "region.greenish" 这类伪 scope,或者更稳妥地——直接匹配 "name": "Selection" 并设 "background"。
{
"name": "Selection",
"scope": "region.greenish",
"background": "#2a5c3a",
"foreground": "#ffffff"
}
-
"scope": "region.greenish"是 Sublime 内部识别选区的固定标识,不能写成selection或selected -
"background"值必须是合法十六进制(如#3399ff),不支持rgb()或命名色 - 如果想让光标所在行的选中色更醒目,可额外加一条
"name": "Line Selection"规则 - 改完保存,无需重启,颜色实时生效;若无效,检查 JSON 是否有语法错误(Sublime 底部状态栏会报错)
为什么改了没反应?常见踩坑点
最常遇到的不是不会改,而是改错了地方或格式不对。
- 误改了
Preferences → Settings里的settings文件——那里没有selection配置项 - 把 rule 塞进了
"globals"对象里,而它只接受"rules"数组里的对象 - 用了带透明度的 hex(如
#2a5c3a80):Sublime color scheme 不支持 8 位 hex,会静默忽略整条 rule - 主题本身定义了更高优先级的
region.redish类规则覆盖了你的设置,此时要加"layer": 1提升层级(但慎用,可能影响其他插件高亮)
真正起作用的只有那一行 "background" 和正确的 "scope" 值,其余都是干扰项。改之前备份原文件,因为有些主题更新后会重置 User/ 下的同名文件。






