直接修改当前启用的 .sublime-color-scheme 文件中 "rules" 数组,添加 "name": "Selection" 规则并设置合法十六进制 background 值;推荐先复制到 Packages/User/ 再编辑以防更新丢失。

怎么改 selection 背景色?直接改当前启用的 .sublime-color-scheme
Sublime Text 4(v4143+)已完全弃用旧版 .tmTheme,所有配色方案必须是 JSON 格式的 .sublime-color-scheme 文件。你看到的“选中文字看不清”,不是设置没生效,而是改错了文件——比如去改了 Preferences.sublime-settings 或随便找了个同名但未启用的主题。
- 打开
Preferences → Color Scheme,看顶部路径,例如Packages/Color Scheme - Default/Mariana.sublime-color-scheme - 这个路径就是正在生效的 scheme 文件,必须编辑它(或它的副本)
- 不要打开
Packages/Color Scheme - Default/下其他同名文件,它们很可能没被加载
改哪里?加 rule 到 "rules" 数组末尾,别塞进 "globals"
选区颜色由 "name": "Selection" 这条规则控制,不是靠 "selection" 字段、也不是靠 "globals" 里的键。很多用户改完没反应,就是因为把新 rule 写进了 "globals" 对象里,而 Sublime 只认 "rules" 数组里的对象。
- 用 Sublime 打开你确认启用的
.sublime-color-scheme文件 - 找到
"rules"数组(通常在文件中后半部分),在它的最后一个}前插入:{ "name": "Selection", "scope": "region.greenish", "background": "#3399ff" } -
"background"必须是合法十六进制(如#3399ff),不支持rgb()、命名色(blue)、带透明度的八位 hex(#3399ff80) - 保存后颜色立即生效;若无效,看窗口右下角状态栏是否报 JSON 语法错误
为什么推荐复制到 Packages/User/ 再改?
直接编辑内置主题(如 Mariana.sublime-color-scheme)风险很高:
- Sublime 更新时会覆盖 Packages/Color Scheme - Default/ 下的原始文件,你的修改就丢了
- 某些包管理器(如 Package Control)可能自动重装主题,导致配置回退
更稳妥的做法:
- 在
Preferences → Color Scheme中右键当前主题 →Copy to Packages/User - Sublime 会自动复制一份到
Packages/User/并用默认名称(如Mariana.sublime-color-scheme) - 然后编辑这个副本,再在
Color Scheme菜单里选它
要不要改 inactiveSelection?多数人其实不需要
有些教程会提到 "name": "Inactive Selection" 或 "inactiveSelection" 字段,但它只影响**非焦点窗口中的选区**(比如你开了两个 Sublime 窗口,当前没激活的那个)。日常编码中几乎感知不到,且新版 scheme 文件里常不包含这条规则。
- 如果你确实需要区分活动/非活动窗口的选中色,可以额外加一条 rule,
"name"改成"Inactive Selection","background"设为稍暗一点的颜色(如#2a75b5) - 但绝大多数场景下,只改
"Selection"就够了;多加一条反而增加维护负担和出错概率
真正容易被忽略的是:改完颜色后如果发现文字变模糊、反光或与背景融合,不是颜色选得不对,而是你用了太亮(如 #ffffff)或太暗(如 #000000)的 background,破坏了可读性平衡。选个中等饱和度的蓝、青、紫(如 #3a86ff、#77bfa3)往往比纯色更实用。






