16 色终端(控制台,无 X)仅显示 8 种颜色?

16 色终端(控制台,无 X)仅显示 8 种颜色?

我一直在新笔记本电脑上使用 Arch Linux,并尝试对其进行配置,这样我就不需要 DE 或 X 服务器了——我只想要命令行实用程序和 VC(提高工作效率并节省我自己的时间,等等)。无论如何,我正在尝试让终端颜色正常工作。我还没有决定在 xterm 和 urxvt 之间选择哪个——老实说,无论哪个都可以让它正常工作,我最终可能会使用哪个,至少在我更好地理解这个问题之前。

本质上,我的设置(据我所知,所以请谨慎对待)是在 VC1 上运行 xterm/urxvt 16 色终端仿真器(此外,如果有必要,我还会使用 Zsh)。我使用 Tmux 进行多路复用,因此我的.zshrc.tmux.conf文件中~/都有将默认终端设置为 (xterm/rxvt)-16color 的行。

如果我直接在终端或 Tmux 中启动 emacs 并运行M-x list-colors-display,它会显示 16 种颜色名称。前八个是常规颜色,颜色正确。但是,颜色 9-16 是亮色,它们显示为黑色背景上的白色文本,没有指定颜色。

我的印象是,.Xresources颜色设置就在那里,包括表格*color0: #353535等。所有 16 种颜色都列在那里,并带有我希望它们具有的值。但是,有颜色的 8 种颜色甚至不是正确的色调 - 它们采用的是默认的醒目高对比度颜色,而不是我下载用于测试的更柔和的主题。

我读到您需要运行xrdb -merge ~/.Xresources才能使这些设置生效。但是,我没有运行xrdb,当我安装它时,我收到“未找到显示”错误(这并不奇怪),所以我删除了它。

那么,最终的问题是:我该怎么做才能让 xterm/rxvt 知道(a)显示所有 16 种颜色(因为我很确定亮色也有默认值,所以似乎那里出了问题)和(b)使用我给出的颜色(和其他)设置.Xresources(或其他地方,如果适用)而不使用xrdb

谢谢您的见解!

答案1

如果您使用的是控制台而不是 X 服务器,颜色设置不受 ~/.Xresources 控制。对于命令行和 curses 应用程序,$TERM 的值以及 termcap 和 terminfo 中的相应条目决定了颜色的显示方式。

Tmux 可能会使事情变得复杂,我还没有尝试过,所以无法给出建议。如果没有它,我也可以先让事情正常运转。

答案2

在 Linux 中运行安慰(无 X)、设置TERMxterm(任何口味)或 rxvt(任何口味)都不会产生良好的结果。linux终端描述是最常用的。

比较一下infocmp例如,

infocmp xterm linux

你会发现许多不同之处。

“鲜艳色彩”的一个方面在终端描述中并不明显:Linux 控制台显示大胆的文本为更明亮文本。有些人对此感到困惑,并将粗体+颜色组合称为附加颜色(它们不是,因为应用程序要求大胆的,这是一个视频属性,例如下划线(某些设备可能也会将其呈现为颜色)。

xterm 有控制序列用于操作 16 种颜色;Linux 控制台才不是TERM。未指定尝试的变体,但假设尝试了xterm-16color,则会产生 Linux 控制台无法识别的“颜色 8-15”的转义序列,并会产生所描述的黑底白字(无色)。

如果你在其他类型的终端上运行一个使文本变粗的程序,你同样可能会以不同的方式得到粗体渲染(像这样)。

相关内容