为什么tput中既有setf/setb又有setaf/setab?

tho*_*i56 6 unix terminal colors terminfo ansi-colors

我正在尝试使用tput以独立于设备的方式在终端中设置前景色和背景色.

如果termcap/terminfo/tput的整个目的是与设备无关,那么为什么两个版本都明确使用ANSI控件(setaf/setab)和那些不应该(不应该)的版本?

这个讨论引用了terminfo(5),它反过来引用了明确表示那些分别用ANSI而不是ANSI实现的标准.

为什么不存在setf/setb,它们总是设置前景色和背景色.我不在乎它是怎么做的,这就是我使用tput的原因!

Rei*_*ein 1

为什么不只有setf/setb而且它们总是设置前景色和背景色 实际上是两个问题!

第一部分,为什么有 ANSI 和非 ANSI 终端命令需要花费很长时间来解释,而且这是没有必要的,因为维基百科上已经很好地解释了历史。

第二部分也许可以自由地改写为“有什么区别?” 或“我能做些什么呢?”。

区别: 与非 ANSI 终端相比,ANSI 类型终端使用颜色编号和颜色之间的另一种映射。例如,一个上的黄色代码在另一个上会是青色。只是有两个不同的映射表。这些事情在维基百科上都有很好的描述。

您可以采取什么措施: 了解您拥有哪种类型的终端,并使用相应的命令。或者修改您的 termcap。不幸的是,这些解决方案都不是完全通用的。