更改彩色输出的颜色

更改彩色输出的颜色

我的终端有白色背景。当命令将黄色文本打印到终端时,我无法清楚地看到文本(由于对比度低)。我想:如果所有将要打印的黄色文本都转换为棕色文本,那不是很好吗?这样,我就可以享受彩色输出,而不必费力地看清打印的文本。

假设一个命令想要打印黄色文本。有没有办法“劫持”转义序列,以便打印棕色文本?或者还有其他方法来实现颜色转换吗?

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。修改后,您会注意到所有黄色文本都发生了变化,甚至是之前打印的文本。

相关内容