必须修改当前启用的.sublime-color-scheme文件中"rules"数组内的"selection"规则,用带alpha的hsla()/rgba()或6位hex设置background值,确保在packages/user/下编辑副本且json语法正确,保存后立即生效。

Sublime Text 默认的选中文本高亮颜色(selection)在某些配色方案下对比度低、易被忽略,甚至和背景色接近到几乎看不见——这不是你眼花,是 color_scheme 文件里没配对。
怎么定位并修改 selection 高亮颜色?
Sublime Text 的选中高亮由配色方案(.sublime-color-scheme 文件)控制,不是通过设置(Settings)改的。你需要编辑当前启用的配色方案文件:
- 菜单栏 → Preferences → Color Scheme…,记下当前选中的方案名(如
Monokai.sublime-color-scheme) - 用 Preferences → Browse Packages… 打开 Packages 目录,进入对应主题文件夹(如
Packages/Color Scheme - Default/Monokai.sublime-color-scheme) - 若该文件在
Packages/下不存在,说明它是内置方案——此时需先「复制一份到 User 目录」再编辑:右键文件 → Open Containing Folder,复制后粘贴到Packages/User/并重命名(如Monokai-My.sublime-color-scheme),再在 Color Scheme 菜单里选它
selection 和 selectionForeground 有啥区别?
这两个 key 控制的是不同部分:
-
selection:选中文本的背景色(最常要调的) -
selectionForeground:选中文本的前景色(即文字本身颜色),仅当你要反色显示(比如白字黑底选中)时才需设;默认继承原始文字色,多数情况下不用动 - 注意:有些旧版 .tmTheme 方案用的是
selection+selectionBorder,但 Sublime Text 4+ 主推 JSON 格式的 .sublime-color-scheme,selectionBorder已废弃,别写
在 .sublime-color-scheme 中找到类似这段:
{
"name": "Selection",
"scope": "region.yellowish",
"settings": {
"foreground": "#FFFFFF",
"background": "#4C97FF"
}
}
→ 把 "background" 改成你想要的十六进制色值(如 "#2A5C8D"),保存即可实时生效。
改完颜色不生效?常见原因排查
不是改了就一定立刻看到效果,这几个点卡住的人最多:
- 改的是内置方案原始文件(位于
Installed Packages/或只读路径),Sublime 启动时会忽略修改 —— 务必确认你编辑的是Packages/User/下的副本 - 配色方案里存在多个
"scope": "region.*"规则,且顺序靠后的覆盖了前面的selection;检查是否误加了"scope": "region.greenish"类规则,它们可能意外匹配选中区域 - 开启了
"highlight_line": true,当前行高亮(line highlight)颜色和 selection 混在一起,视觉上干扰判断;可临时关掉测试:Preferences → Settings里加"highlight_line": false - 用了插件如
BracketHighlighter或SyncedSideBar,它们可能注入自己的 region 高亮逻辑,优先级高于原生 selection —— 关闭插件再试
真正麻烦的不是改颜色,而是改完之后发现光标在选区里看不见了,或者深色背景+深色 selection 导致根本分不清哪块被选中。建议始终让 selection 背景色与当前 theme 的 background 保持至少 30% 明度差,用在线工具(如 https://webaim.org/resources/contrastchecker/)快速验算对比度。











