任何主题都是别人的口味。Codeshot 内置了 30 款,每款都有浅色和深色两种,总有一款差不多够用——但在一张署着你名字的图上,"差不多够用"其实是个奇怪的标准。

在 Mac 上你不必再将就了。设置 → 主题给你一款属于自己的主题:十三种颜色、随选随变的预览,还有一个可以交给别人的文件。

在哪里

打开 Codeshot 的设置,选择主题标签页。左边是你的主题列表,+ 新建一款, 删除选中的那款。

右边是当前选中主题下的示例代码,下面是名称输入框,再往下是颜色列表。这个面板全都是实时的:改一个颜色,上面的示例立刻重绘。

有两处操作要留意。名称框用来重命名主题。Use This Theme 才是把它设为应用真正用来绘制的主题——编辑主题并不会切换过去,这一步最容易被忘掉。

十三种颜色

一款语法主题不是十三个分量相同的决定。两个定调子,十一个干活。

颜色 作用范围
Background 代码背后的纸
Plain Text 高亮没有认领的一切——标点、括号、运算符
Keywords letvarstructfuncreturn
Strings 引号里的文本
Numbers 数字字面量
Comments 注释与文档
Declared Types 代码里自己定义的类型
Library Types 来自框架的类型——StringViewCGFloat
Functions 函数名与方法名
Members 在别的东西上访问到的属性和成员
Variables 变量名
Annotations 属性包装器与注解,@State 之类
Attributes 属性名,主要出现在标记语言里

不必给十三项都配上不同的颜色。读起来舒服的主题通常只用四五种色相,然后重复使用:类型和函数共用一种,关键字和注解共用另一种。十三种各不相同的颜色不是主题,是一盘水果。

一个管用的顺序

先定 BackgroundPlain Text,把这一对定好再动别的。其余每个决定都要放在这两者上判断,把它们留到最后,等于所有颜色都要重挑一遍。

接着定 Comments,而且要压暗。注释是唯一应该往后退的记号——它是上下文,不是代码。注释和关键字一样响亮的主题,无论其余配色多好,读起来都是噪音。

然后是关键字、字符串和数字,真实代码里大部分颜色都落在这几项上。类型、函数、成员放在后面,最后几项完全可以重复用已经选好的颜色。

每改一步就看一眼预览,别留到最后。这个面板存在的意义就是让你在真实代码上判断配色——取色器会骗人,代码不会。

选色之前值得知道的事

对比度不是可选项。 代码图会在信息流里被缩小,在白天的手机上被看到,还会被你发布的平台再压缩一遍。原尺寸下显得考究的低对比配色,到读者眼前时已经看不清了。预览里就难读的颜色,进了信息流就等于没有。

别用纯黑背景,除非你要导出透明底或放在深色背景上。在明亮的壁纸前,#000000 像一个洞。好用的深色主题大多落在 #1F1F24#282C34 之间,原因正在这里。

注释和正文要拉开差距。 两者亮度接近时,文字和代码会糊成一整块灰,代码本身的形状就消失了。

想照搬编辑器可以,但要脱离编辑器再看一眼。 Xcode 主题是为桌面上的大窗口调的。同样的颜色变成别人手机上一张 1000 像素宽的图,就是另一回事了,通常需要比原来更强一些的对比。

分享一款主题

主题列表底部的 菜单负责导入和导出主题文件。

导出把主题写成文件,导入再读回来。主题就是这样从你的一台 Mac 到另一台 Mac、进入备份,或者交给团队里的某个人——一套统一的配色能给不止一个人用,靠的就是这个。

什么时候内置的 30 款才是更好的答案

自己做主题值得的场景是:你在持续产出图片,并且希望它们看上去成套——一系列帖子、一份产品文档、一场演讲的幻灯片。

只是随手发一段代码就不必了。应用自带的 30 款都经过认真设计,都有浅色和深色,两次点击就能选中。并排比一比,挑一款配得上这段代码的就好。

主题编辑器是为这种情况准备的:你已经这么比过了,答案依然只是"差一点"。