我的终端有白色背景。当命令将黄色文本打印到终端时,我无法清楚地看到文本(由于对比度低)。我想:如果所有将要打印的黄色文本都转换为棕色文本,那不是很好吗?这样,我就可以享受彩色输出,而不必费力地看清打印的文本。
假设一个命令想要打印黄色文本。有没有办法“劫持”转义序列,以便打印棕色文本?或者还有其他方法来实现颜色转换吗?
gnome-terminal
注意:我在 Ubuntu 18.04 上使用。
答案1
如今许多终端(包括 gnome-terminal)使用两种甚至三种调色板:8 色、256 色和 24 位(大约 16x10^6 颜色)。然而,通常前两组可以从最后一组中任意选择,这也是这种情况gnome-terminal
(例如它的表兄弟terminator
)。
现在,要更改从 24 位 RGB 调色板中选择的特定调色板,我们需要\e]4
转义码接下来是更改的颜色代码编号和 RGB 颜色。在你的情况下
printf '\e[33mTEST\e[m\n' # first print "TEST" to see yellow text
printf '\e]4;3;rgb:b0/4a/00\e\\' # now we change yellow to brown
printf '\e[33mTEST\e[m\n' # test again
黄色的昵称是3
,棕色的昵称是我任意选择的b04a00
。修改后,您会注意到所有黄色文本都发生了变化,甚至是之前打印的文本。