Colors 有支持真彩色的终端吗?

Colors 有支持真彩色的终端吗?,colors,terminal,Colors,Terminal,我不明白为什么苹果的默认终端只有16种颜色,iterm2等支持256种颜色,而X11的终端支持真彩色(尽管它的用户界面很糟糕) 我的问题分为两部分: 为什么在这个时代,终端不能支持更高的颜色(即高于16和256)? 上次我问这个问题的时候,我只收到了一些粗鲁的评论,比如“你为什么不自己写一个呢”。。。我是认真地问的,因为我不知道终端的内部是什么,为什么会有约束。是否只是因为没有需求 如果我错了,并且有支持真彩色的好终端,您能推荐它们吗? 我的观察是基于Mac的,但是其他平台的答案也很受欢迎,因

我不明白为什么苹果的默认终端只有16种颜色,iterm2等支持256种颜色,而X11的终端支持真彩色(尽管它的用户界面很糟糕)

我的问题分为两部分:

  • 为什么在这个时代,终端不能支持更高的颜色(即高于16和256)?

    上次我问这个问题的时候,我只收到了一些粗鲁的评论,比如“你为什么不自己写一个呢”。。。我是认真地问的,因为我不知道终端的内部是什么,为什么会有约束。是否只是因为没有需求

  • 如果我错了,并且有支持真彩色的好终端,您能推荐它们吗?

    我的观察是基于Mac的,但是其他平台的答案也很受欢迎,因为它们可能对其他人有帮助

  • ,即每个字符可以有不同的24位颜色


    Xterm和大多数其他终端仿真器现在有256种颜色的调色板,每个颜色都可以从完整的24位范围中选择。

    在终端起源的旧时代,它们是硬件,它们的颜色受到硬件限制(即内存不足)。现在我们主要使用虚拟终端,它们通常在软件中模拟这些旧设备。因此,有一点是软件终端是否真的模拟了具有历史局限性的设备

    另一点是,颜色、字体或任何东西都没有概念上的限制。这是因为终端是由命令控制的,这些命令只是特殊的保留字符序列。命令不是标准化的,不同的终端有不同的命令。这就是为什么实际上没有实现这种奇特功能的原因,因为这会给用户留下两个限制选项:

    • 要求所有终端支持该功能(实际上不可行)
    • 将软件的使用限制在少数确实支持该功能的特定终端上(这非常令人不快)

    我注意到的第三点是,大多数人并不真正需要这些功能。

    我知道我参加聚会已经很晚了,但我发现:
    ,它提供了有关哪些终端支持true color的信息以及相应社区中的相关讨论。

    如果您正在寻找Mac OS X的快速链接,我刚刚获得了iTerm2 nightly build,它与true color完美配合:


    为了回答这个为什么有用的问题:我对颜色进行了研究,并且能够在终端上显示颜色对于调试/脚本编写/你可以说出来是非常有用的。

    所有这些颜色都将用于什么?@delnan:我可以使用为GUI版本设计的vim和emacs主题(即真彩色)@用户564376顺便说一句,现在可以为终端vim@delnan使用GUI颜色方案这与颜色无关,这是关于消除基于调色板的颜色索引,这基本上是任何试图为其vim首选项安装颜色方案的人的一个障碍。Truecolor颜色设置允许简单有效地定义和处理实际颜色,而不是色样参考,这会使事情复杂化,因为应用程序不知道它们真正输出的颜色。同样,这不仅仅是关于颜色,这是关于指定颜色的方法。Mac OS终端在2020年还不支持truecolor吗?除此之外,还有一个定义的转义码用于“调色板中与此r/g/b元组最近的颜色”。在这种情况下,xterm从256色中选择最接近的颜色,显然Konsole只是按原样使用。仅供参考:我认为转义是fg:“\e[38;2;;;m”和bg:“\e[48;2;;;m”这是添加到libvte中的。和…\e[38;5;m或\e[38;5;m对于256色调色板,利用256色调色板功能的程序也不支持24位/真彩色功能,这让人感到遗憾。许多人只是不知道这些功能,因为直到最近才有很好的文档记录。事实上,直到一年前,就连我都不知道fbter以外的终端m(与它严重不兼容)支持真彩色,我认为序列甚至不是有效的sgr,类似于\e[1或2;(r;g;b或256色索引)}关于第三点,一个应用程序需要超过16种颜色,但除了单间隔的80x24字符网格之外,不需要其他颜色,这可能是非常罕见的了解VT100或ANSI序列,需要超出此类终端所提供功能的应用程序通常最好使用与终端完全不同的东西。@supercat,即图形显示,我非常同意。它不需要,只是因为没有人知道太多或使用/支持它。如果它是act在开发人员的支持下,比如vim等,它可能会给该死的终端注入新的活力。