Sublime Text 4 只认 .sublime-color-scheme 格式主题,.tmTheme 不兼容;确认方式为右键状态栏配色名→“Copy Path”,后缀必须为 .sublime-color-scheme 且路径大小写、空格完全一致;推荐使用 Preferences: Customize Color Scheme 自动生成 Custom.sublime-color-scheme 进行增量修改,避免静默失效。

Sublime Text 4 只认 .sublime-color-scheme 文件,.tmTheme 已被弃用;直接改用户设置或主题文件(.sublime-theme)对编辑区颜色完全无效。
怎么确认当前配色方案是 .sublime-color-scheme 格式
右键编辑区右下角状态栏显示的配色名称 → “Copy Path”,粘贴出来看后缀。必须是 .sublime-color-scheme;若为 .tmTheme,即使文件存在也不会出现在菜单里,也不加载。
- 路径大小写必须完全一致:比如
Packages/Dracula Color Scheme/Dracula.sublime-color-scheme写成dracula或漏掉空格,Sublime 就静默忽略 - 路径中不能有中文、空格以外的不可见字符(如零宽空格),复制时建议手动重敲斜杠和引号
- 用命令面板运行
Developer: Show Scope Name,能弹出 scope 说明配色已绑定;如果空白,大概率是文件没加载成功
怎么安全创建并修改 Custom.sublime-color-scheme
这是 Sublime 官方唯一支持热重载的自定义方式,不会被升级覆盖,且只写增量规则即可生效。
- 按
Ctrl+Shift+P输入Preferences: Customize Color Scheme,自动在Packages/User/下生成Custom.sublime-color-scheme - 文件结构是 JSON patch 形式:只填你想改的部分,比如改背景色就写
"globals": {"background": "#E8F5E8"},其余继承原主题 - 加 selection 高亮时,必须写全
{"name": "Selection", "scope": "selection", "background": "#3a405a"}—— 缺"scope": "selection"这条,Sublime 直接回退到默认蓝 - 别手写
variables或rules框架:这个文件不需完整 schema,只补字段;写错 JSON(如多逗号、中文引号)会导致整个配色静默失效,编辑区变回 Monokai
为什么 background 改了,selection / comment / string 还是旧颜色
因为 background 是全局底色,而语法元素靠 rules 数组里的 scope 精准匹配控制,二者完全解耦。
-
comment分三类:comment.line(#或//)、comment.block(/* */)、comment.documentation(/** */),得分别写 rule - 字符串高亮通常匹配
string或更细的string.quoted.double,scope 写不准确,颜色就不变 - rule 顺序很重要:靠前的 rule 若 scope 范围太宽(如只写
keyword),会拦截后续更具体的 rule(如keyword.control) - 用
Developer: Show Scope Name把光标停在目标代码上,看实际报出的 scope 名,照着抄进 rule 的"scope"字段里最可靠
color_scheme 和 theme 必须分开调,否则视觉割裂
编辑区背景由 color_scheme 控制,侧边栏、标签页、状态栏由 theme(.sublime-theme 文件)控制——它们是两套独立系统,路径、格式、生效逻辑全不同。
- 改了
color_scheme为 Ayu Mirage,但theme还是 Adaptive,结果编辑区柔灰、侧边栏纯黑,眼睛真正疲劳来自这种不协调 - 侧边栏背景靠
"class": "sidebar_container"下的"layer0.tint"控制,值是 RGB 数组(如[232, 245, 232]),不是十六进制;设错类型或漏掉"layer0.opacity": 1.0会导致透明或无变化 - 路径必须带完整前缀:
"theme": "Packages/User/MyUI.sublime-theme"—— 漏Packages/或大小写错,Sublime 当没这回事,界面不报错也不提示 - 某些插件(如 BracketHighlighter)会劫持 UI 渲染,如果改了
.sublime-theme没反应,先禁用插件再试
真正容易被忽略的是 scope 匹配精度和路径大小写的零容错——一个不可见空格、一个驼峰大小写错误、一条 scope 写宽了,都会导致你调了半小时的颜色根本不出现在屏幕上。


















