最稳妥的方法是直接修改Packages/User/下的.tmTheme或.sublime-color-scheme文件;用PackageDev插件可一键生成带注释的标准模板,避免手写XML/JSON出错;selection须在settings内且值为十六进制RGBA字符串(如#3399FF33);改完需在Preferences→Color Scheme中重新选择才生效。

直接改 Packages/User/ 下的 .tmTheme 或 .sublime-color-scheme 文件是最稳路径,别碰 Packages/Color Scheme - Default/ 里的原始文件——更新一来就全丢。
怎么生成一个能直接编辑的配色文件
别手写 XML 或 JSON 结构,漏个引号、少个逗号就解析失败,还查不出错。PackageDev 插件能一键生成带注释的标准模板:
- 用 Package Control 安装
PackageDev - 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入New Color Scheme回车 - 新标签页会打开完整骨架:含
<key>settings</key>全局色块和<key>rules</key>语法规则区 - 保存为
Packages/User/MyTheme.tmTheme(路径必须是User/下,不能放错目录)
改 selection 背景色为什么没反应
常见原因是改错位置或格式不合法:
-
selection必须在<key>settings</key>块里,不是<key>rules</key>里 - 值必须是十六进制字符串,如
#3399FF33(RGBA 格式),不能写成3399FF33或"#3399FF33"(XML 会自动加引号) - 如果设了
selectionForeground,它会覆盖文字颜色;不设时,选中文字沿用foreground - 改完保存后,需在
Preferences → Color Scheme里重新选一次你的主题才生效——Sublime 不自动切换
scope 写对了颜色还是不变
Sublime 不报错,只是静默跳过无效 rule。真正起效的是 scope 匹配精度和顺序:
- 用
Ctrl+Alt+Shift+P(Win/Linux)或Cmd+Alt+Shift+P(macOS)调出Developer: Show Scope Name,看光标处完整 scope,比如source.python meta.function.python storage.type.class.python - 越具体的 scope 越优先,
storage.type.class.python比storage.type更准,比source强得多 -
rules数组里靠前的 rule 先匹配,后面同 scope 的会被忽略 - 确认你改的是当前正在用的主题文件——右下角显示的语法名(如
Python)和Preferences → Color Scheme里选中的主题名要一致
为什么 .env 或 .toml 文件颜色还是灰的
这不是配色问题,是 Sublime 根本没把文件当对应语言解析:
- 打开一个
.env文件 →View → Syntax → Open all with current extension as…→ 选ShellScript - 同理,
.toml选TOML,.pyi选Python - 这个操作会自动写入
Packages/下的语法映射配置,下次打开同扩展名文件就自动识别了
最易被忽略的一点:color_scheme 和 theme 是两套完全独立的系统。改 background 只影响代码编辑区,侧边栏、标签页、状态栏这些 UI 元素的颜色得去改 .sublime-theme 文件——哪怕只差一个字母大小写,路径就失效。











