有些程序按深色终端来挑颜色,放到浅色主题下,文字几乎看不见。现在 Term 会把它加深到刚好能读——自动完成,几乎不占性能。
撰写于
很多命令行程序会自己挑颜色,而且不少默认终端是深色的:浅灰、淡黄、白色的文字,在黑底上很好看。换到 Term 的浅色主题,这些输出就融进了白色背景里——你知道那里有字,却看不清写的是什么。
反过来也会发生:为浅色终端设计的程序,在深色主题下画出的深色文字同样会消失。
Term 在绘制每段文字时都会检查一下。如果文字颜色和身后的背景太接近,就把它加深(浅色背景)或调亮(深色背景)——只调到刚好能读,并保留原来的色相:淡黄会变成看得清的黄色,而不是黑色。
上面那张图是最常见的情况:代码查看器的默认配色按深色终端设计。下面是我们见得最多的另外几种,每组左边关闭、右边开启。
带“透明背景”的编辑器主题。 很多 vim / Neovim 配置会把深色配色方案和“透明背景”搭在一起,让编辑器直接透出终端自己的背景。换到浅色主题,方案里的浅灰文字就落在了白底上。
用低调灰色的命令行提示符。 流行的提示符主题会用很浅的颜色画时间、git 分支和命令耗时,在深色终端上它们安静地待在背景里;到了浅色终端就看不见了。
程序拿不到全彩色的时候。 在 sudo 里、某些 tmux 配置下,或者服务器没有把颜色设置传过去时,程序会退回到 256 色。这套颜色里有自己的浅灰、米白,任何浅色主题都调整不了它们。「保持文字清晰可读」同样能处理。
它默认开启。要更改,打开 设置 → 终端,保持文字清晰可读 就在 外观 里、终端主题的下面。
开关立即生效,所有已打开的会话都会马上更新,无需重新连接。
几乎为零。满屏文字——120 列 × 50 行,共 6000 个字符——在我们的测量中,这项检查在笔记本芯片上每帧约增加 0.02 毫秒,在手机上估计约 0.05 毫秒。60 帧每秒时一帧有 16.7 毫秒,这还不到一帧的百分之一,滚动手感完全一样。
好的终端程序会先问终端背景是什么颜色,再选一套匹配的主题,Term 总会回答。但有些连接根本不把这个问题传过去——原版 mosh 服务端就是其中之一——程序只能猜,而通常猜的是“深色”。「保持文字清晰可读」正是为这种情况兜底。用 termosh 代替 mosh-server,问题就能传到,程序可以自己选浅色主题。
如果程序自带浅色主题或相关设置,那样的效果永远最好。「保持文字清晰可读」是它没有时的安全网。