偶然发现了这个 Emacs 的主题,感觉很有意思:Tao-theme

“Tao” 得名于《道德经》里说“五色令人目盲”,这是一款以灰度为主色调的主题。换句话说,各种高亮和提示只靠不同灰度和加粗来实现,用色非常克制。

而且它的实现也很有意思,一般常见的 Emacs 主题都是内置一系列精心挑选过的颜色列表,而 tao-theme 却是直接用了黄金分割来算出一系列的灰色。

算法大致是这样的:

  1. 0xFF 进行一次黄金分割 —— 0xFF/φ,得到一个数值;对上一步得到的结果再进行一次黄金分割,这样重复 32 次,得到 32 个数字,每一个数字都在上一个数字的黄金分割点。

  2. 对第一步得到的列表取整,去重,得到 15 个整数

  3. 把第二步得到的每个整数填进颜色对应的 RGB 中,得到一系列的灰色 (灰色在 RGB 表达中是 RGB 三色数值正好相等,比如 0x808080)。

  4. 这样正好得到 15 个颜色。

  5. (可选)的褐色主题:在第三步,用整数组成颜色的时候,对 RGB 三个部分分别进行固定比例的加成,这样最终得到的 15 个颜色是会往褐色偏一点。

我自己尝试了一下调整,用默认的褐色主题,把 tao-theme-sepia-saturation 设置成 1.05 差不多是我最喜欢的程度。