Sublime Text的.tmTheme配色方案基于XML格式,定义语法高亮颜色与样式。根节点为,包含主题元信息(如name、author)和settings数组,后者通过scope匹配语法元素并设置foreground、background、fontStyle等属性。使用Scope Hunter或快捷键查看作用域,结合PackageDev插件辅助编写,参考现有主题可高效创建协调的自定义主题。

Sublime Text 的配色方案(.tmTheme)文件是基于 XML 格式的,用于定义编辑器中语法高亮的颜色、背景、字体样式等。制作一个 .tmTheme 颜色主题并不复杂,但需要理解其结构和颜色命名规则。
1. tmTheme 文件基本结构
一个典型的 .tmTheme 文件是一个属性列表(plist),使用 XML 编写,遵循 Apple 的 NSPropertyList 格式。根节点是 ,包含一个字典 ,其中定义了主题的元信息和颜色规则。
基本结构如下:
name My Custom Theme author Your Name comment A custom dark theme for Sublime Text. gutterSettings background #282C34 divider #3E4451 settings settings background #282C34 caret #FFFFFF foreground #ABB2BF lineHighlight #3E4451 selection #3E4451 inactiveSelection #3E4451 selectionBorder #3E4451 findHighlight #528BFF findHighlightForeground #FFFFFF name Keyword scope keyword settings foreground #C678DD fontStyle bold name String scope string settings foreground #98C379
2. 关键字段说明
理解以下核心部分有助于自定义主题:
- name:主题显示名称
- author:作者名(可选)
- comment:备注说明
- gutterSettings:侧边行号栏背景与分隔线颜色
- settings(全局设置):定义编辑器基础颜色,如背景、光标、选中区域等
-
settings 数组中的 dict:每个条目对应一条语法着色规则,通过
scope匹配代码中的元素
3. Scope(作用域)系统详解
Sublime 使用 TextMate 的作用域命名系统 来识别不同语法元素。例如:
-
keyword:语言关键字(如 if, for, return) -
string:字符串 -
comment:注释 -
constant.numeric:数字常量 -
entity.name.function:函数名 -
variable:变量
你可以使用 Sublime 自带的 Scope Hunter 插件或按下 Ctrl+Alt+Shift+P 查看当前光标位置的作用域路径。
4. 颜色与样式设置
在每条规则的 settings 字典中可以设置:
- foreground:文字颜色(十六进制,如 #FF0000)
- background:背景色(慎用,可能影响可读性)
-
fontStyle:字体样式,可选:
bold、italic、underline,多个用空格分隔,如bold italic
示例:
settings foreground #E06C75 fontStyle bold
5. 创建与测试主题文件
步骤如下:
- 新建一个文件,保存为
MyTheme.tmTheme - 放入 Sublime 的 Packages/User 目录:
路径一般为:
Windows:%APPDATA%\Sublime Text\Packages\User\
macOS:~/Library/Application Support/Sublime Text/Packages/User/
Linux:~/.config/sublime-text/Packages/User/ - 重启 Sublime 或使用 Preferences → Color Scheme 中选择你的主题
- 编辑时可用 View → Developer → Show Scope Name 实时调试作用域
6. 推荐工具与技巧
- 使用 PackageDev 插件辅助编写 .tmTheme,支持语法高亮和自动补全
- 参考现有主题(如 Monokai、Solarized)学习常见 scope 的使用方式
- 颜色建议使用一致的调色板,保持视觉协调
- 避免在深色主题中使用过亮的背景,防止“发光”效果
基本上就这些。掌握作用域和颜色映射后,你可以逐步构建出符合自己审美的主题。不复杂但容易忽略细节。










