检查我的终端模拟器支持多少种颜色

检查我的终端模拟器支持多少种颜色

有没有可靠的方法来检查我的终端模拟器支持多少种颜色?

如果echo $TERM打印xterm,那么明确地告诉我我的终端模拟器支持多少种颜色?我怎样才能可靠地检查这些信息?

答案1

的值$TERM并没有提供有关支持的颜色数量的太多信息。许多终端将自己标榜为xterm,并且可能支持任意数量的颜色(2、8、16、88 和 256 是常见值)。

您可以使用以下命令查询每种颜色的值OSC 4 ; c ; ? BEL 控制序列。如果支持颜色编号c,并且终端理解该控制序列,则终端将回复颜色值。如果不支持颜色编号或者终端不理解此控制序列,则终端不会做出任何响应。这是一个 bash/zsh 片段,用于查询是否支持颜色 42(如有必要,重定向到/从终端):

printf '\e]4;%d;?\a' 42
if read -d $'\a' -s -t 1; then … # color 42 is supported

在流行的终端中,xterm 和基于 VTE 库的终端(Gnome-terminal、Terminator、Xfce4-terminal 等)支持此控制序列; rxvt、konsole、screen 和 tmux 没有。

我不知道有更直接的方法。

答案2

您可以使用

$ tput colors

ncurses-bin在我的 debian 安装中,tput 是默认安装的包的一部分。

答案3

有一个perl脚本,256colors2.pl,这将在您的终端上显示所有颜色。

相关内容