当前生效的 .sublime-color-scheme 文件可通过 preferences → color scheme 菜单顶部路径定位,如 packages/user/dracula.sublime-color-scheme;右键复制到 packages/user 后编辑 rules 数组,添加 "name": "selection" 规则并设 6 位 hex background 值即可生效。

怎么定位当前生效的 .sublime-color-scheme 文件
Sublime Text 4(v4143+)只认 JSON 格式的 .sublime-color-scheme,旧版 .tmTheme 已被弃用。改错文件等于白改——你看到的“选中高亮色”,只由当前启用的 color scheme 文件中的 "name": "Selection" 规则控制,和 Preferences.sublime-settings 或 UI 主题完全无关。
- 打开
Preferences → Color Scheme,看顶部路径:比如Packages/Color Scheme - Default/Mariana.sublime-color-scheme或Packages/User/Dracula.sublime-color-scheme - 右键该路径 →
Copy to Packages/User(别直接编辑内置路径下的文件,更新后会丢失) - 用 Sublime 打开你复制到
Packages/User/下的副本,确保它正在被启用(菜单里已勾选)
在 rules 数组里加一条合法的 Selection 规则
选中背景色不是靠改 globals 里的 selection 字段,也不是靠写 "scope": "selection"(这个 scope 不存在)。Sublime 只响应 "name": "Selection" 这个固定名称的 rule,且必须放在 "rules" 数组内,不能塞进 "globals" 或顶层对象里。
- 在文件末尾的
"rules"数组中添加新对象(注意逗号分隔):
{
"name": "Selection",
"background": "#2a5c3a"
}
-
background值必须是 6 位十六进制(如#2a5c3a),不支持带透明度的 8 位写法(#2a5c3a80会被整条忽略) - 不要加
foreground——它对选中文本无效;若想改选中文字颜色,得另配"name": "Selection Foreground"(极少数主题支持,非标准行为) - 保存后立即生效;若没变化,看 Sublime 窗口右下角状态栏是否报 JSON 错误(比如少逗号、引号不匹配)
为什么改了没反应?常见失效原因
不是配置逻辑复杂,而是几个关键点一错就静默失败,连报错都不给。
-
.sublime-color-scheme是严格 JSON,注释(//或/* */)会导致整个文件加载失败 - 把规则加在
"globals"下:Sublime 完全无视,选区颜色仍走默认 fallback - 用了第三方主题但没复制到
User/目录:升级主题包时你的修改会被覆盖 - 路径写错或文件名拼错(比如
MyTheme.sublime-colorscheme少了个-):Sublime 找不到文件,自动回退到内置方案 - 颜色太接近背景(如
#1e1e1e在深色主题上):不是没生效,是根本看不见
要不要动 .tmTheme?现在基本不用
如果你还在用 .tmTheme(XML 格式),说明你卡在 ST3 或用了老插件导出的主题。2026 年主流环境已是 ST4 + .sublime-color-scheme。强行改 .tmTheme 需额外装 PackageResourceViewer 提取,且转换后还得手动迁移到新格式——不如直接新建一个 .sublime-color-scheme 文件更可控。
- 新建空文件,命名为
MySelection.sublime-color-scheme,放入Packages/User/ - 粘贴标准结构(含
"version"、"globals"、"rules"),再加入上面那条"name": "Selection"规则 - 通过
Preferences → Color Scheme手动选中它,避免路径引用残留问题
真正容易被忽略的,是 Sublime 对 JSON 格式零容忍——一个多余的逗号,就能让整个选区颜色回归默认,而你可能花十分钟检查颜色值,却漏看了那一行末尾。









