Sublime主题修改必须将文件置于Packages/User/目录并在用户设置中指定完整路径,否则无效;需用Show Scope Name确认当前scope,按JSON或XML语法精准编辑规则,注意格式、编码及优先级。

直接改 Packages/User/ 下的 .sublime-color-scheme 或 .tmTheme 文件才生效
改 Settings 里 color_scheme 的路径但漏写 Packages/User/、大小写错、用了反斜杠 \,或者把文件扔进 Packages/ 根目录或自建子文件夹——全都不生效。Sublime 只认 Packages/User/ 下的文件,且必须在用户设置里显式指定完整路径。
确认当前用的是哪个文件:按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 Show Scope Name 回车,右下角状态栏会显示类似 Packages/User/MyTheme.sublime-color-scheme 的路径。没出现 Packages/User/,说明你正在编辑只读原版,改了也白改。
- 用
Preferences → Browse Packages…打开目录,进User/文件夹 - 把想改的主题(如
Monokai.sublime-color-scheme)从Packages/Color Scheme - Default/复制过来,重命名(如MyMonokai.sublime-color-scheme) - 在
Preferences → Settings – User中写入:"color_scheme": "Packages/User/MyMonokai.sublime-color-scheme" - 保存后无需重启,但得在
Preferences → Color Scheme里重新选一次才能加载新文件
scope 必须用 Show Scope Name 实时查,不能靠猜或抄旧教程
光标停在 if 上执行 Show Scope Name,可能返回 keyword.control.python;停在双引号字符串里,可能是 string.quoted.double.python;# 注释 则常是 comment.line.number-sign.python。scope 写宽泛(比如只写 string)容易被更具体的 rule 覆盖;写错一个字母(如 stirng),Sublime 静默忽略,不报错也不变色。
-
.sublime-color-scheme(JSON)中,在"rules"数组里加条目:{"scope": "string.quoted.double.python", "foreground": "#6a8759"} -
.tmTheme(XML)中,对应<key>scope</key><string>string.quoted.double.python</string>的<dict></dict>块里改<key>foreground</key><string>#6a8759</string> - rule 顺序很重要:靠前的 rule 优先匹配,后面同 scope 的会被跳过
- 不同语言的 scope 差异很大,
.env文件默认当 Plain Text 解析,得手动设语法:View → Syntax → Open all with current extension as… → ShellScript
background 和 selection 是两回事,必须分别配
background 控制编辑区底色,selection 控制鼠标拖选后的背景色——它不继承 background,也不受 foreground 影响。常见坑是只调了 background,结果选中文本灰成一片或刺眼发亮。
-
.sublime-color-scheme:在"globals"或顶层"settings"里改"background";再在"rules"末尾加一条:{"name": "Selection", "scope": "selection", "background": "#3a405a"} -
.tmTheme:在<key>settings</key>对应的<dict></dict>里找<key>background</key>和<key>selection</key>,值都是十六进制字符串(如#272822),.tmTheme不支持透明度 - 别用
rgb()或hsl():新版 Sublime 只认hsla()(用于.sublime-color-scheme)和十六进制(#RRGGBB或#RRGGBBAA)
文件格式错一个字符,整个配色方案就静默失效
Sublime 不报错,只是跳过整个文件——你在命令面板里找不到主题名、颜色完全不变,大概率是格式问题。
-
.sublime-color-scheme是 JSON:不能有注释(//或/* */)、不能漏逗号、不能多逗号、所有 key 和 string 必须用英文双引号包裹 -
.tmTheme是 XML:每个<key></key>必须有对应,<string></string>必须闭合,<dict></dict>嵌套不能错层 - 文件编码必须是 UTF-8 无 BOM;含中文注释时尤其容易因编码错误导致解析中断
- 如果同时存在同名的
.sublime-color-scheme和.tmTheme,ST4 默认优先加载前者,后者被忽略
最稳的起点不是手写,而是用 PackageDev 插件生成模板:Ctrl+Shift+P → New Color Scheme,它产出的结构带注释、无语法风险,改起来心里有底。


















