0

0

sublime的配色方案(.tmTheme)文件怎么制作_sublime颜色主题文件结构与编写

冰火之心

冰火之心

发布时间:2025-12-02 16:18:07

|

317人浏览过

|

来源于php中文网

原创

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

sublime的配色方案(.tmtheme)文件怎么制作_sublime颜色主题文件结构与编写

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 的作用域命名系统 来识别不同语法元素。例如:

Khroma
Khroma

AI调色盘生成工具

下载
  • 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:字体样式,可选:bolditalicunderline,多个用空格分隔,如 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 的使用方式
  • 颜色建议使用一致的调色板,保持视觉协调
  • 避免在深色主题中使用过亮的背景,防止“发光”效果

基本上就这些。掌握作用域和颜色映射后,你可以逐步构建出符合自己审美的主题。不复杂但容易忽略细节。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

318

2023.08.02

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1465

2023.10.24

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

746

2023.08.22

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1881

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2087

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1011

2024.11.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.09.04

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号