有些程式按深色終端機來揀顏色,放到淺色主題下,文字幾乎看不見。現在 Term 會把它加深到剛好能讀——自動完成,幾乎不佔效能。
撰寫於
很多命令列程式會自己揀顏色,而且不少預設終端機是深色的:淺灰、淡黃、白色的文字,在黑底上很好看。換到 Term 的淺色主題,這些輸出就融進了白色背景裏——你知道那裏有字,卻看不清寫的是甚麼。
反過來也會發生:為淺色終端機設計的程式,在深色主題下畫出的深色文字同樣會消失。
Term 在繪製每段文字時都會檢查一下。如果文字顏色和身後的背景太接近,就把它加深(淺色背景)或調亮(深色背景)——只調到剛好能讀,並保留原來的色相:淡黃會變成看得清的黃色,而不是黑色。
上面那張圖是最常見的情況:程式碼檢視器的預設配色按深色終端機設計。下面是我們見得最多的另外幾種,每組左邊關閉、右邊開啟。
帶「透明背景」的編輯器主題。 很多 vim / Neovim 設定會把深色配色方案和「透明背景」搭在一起,讓編輯器直接透出終端機自己的背景。換到淺色主題,方案裏的淺灰文字就落在了白底上。
用低調灰色的命令列提示字元。 流行的提示字元主題會用很淺的顏色畫時間、git 分支和指令耗時,在深色終端機上它們安靜地待在背景裏;到了淺色終端機就看不見了。
程式拿不到全彩色的時候。 在 sudo 裏、某些 tmux 設定下,或者伺服器沒有把顏色設定傳過去時,程式會退回到 256 色。這套顏色裏有自己的淺灰、米白,任何淺色主題都調整不了它們。「保持文字清晰可讀」同樣能處理。
它預設開啟。要更改,打開 設定 → 終端機,保持文字清晰可讀 就在 外觀 裏、終端機主題的下面。
開關即時生效,所有已打開的工作階段都會馬上更新,無需重新連線。
幾乎為零。滿屏文字——120 欄 × 50 行,共 6000 個字元——在我們的量度中,這項檢查在手提電腦晶片上每幀約增加 0.02 毫秒,在手機上估計約 0.05 毫秒。每秒 60 幀時一幀有 16.7 毫秒,這還不到一幀的百分之一,捲動手感完全一樣。
好的終端機程式會先問終端機背景是甚麼顏色,再揀一套相配的主題,Term 總會回答。但有些連線根本不把這個問題傳過去——原版 mosh 伺服器就是其中之一——程式只能猜,而通常猜的是「深色」。「保持文字清晰可讀」正是為這種情況兜底。用 termosh 代替 mosh-server,問題就能傳到,程式可以自己揀淺色主題。
如果程式自帶淺色主題或相關設定,那樣的效果永遠最好。「保持文字清晰可讀」是它沒有時的安全網。