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

时间:2013-09-19 11:33:34

标签: unix colors terminal terminfo ansi-colors

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

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

This discussion引用terminfo(5),它反过来引用明确表示那些将分别用ANSI而不是ANSI实现的标准。

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

1 个答案:

答案 0 :(得分:1)

为什么没有setf / setb,他们总是设置前景色和背景色 实际上是两个问题!

第一部分,为什么有ANSI和非ANSI终端命令需要太长时间才能实现,并且由于维基百科上的历史记录得到了很好的解释,因此它是不必要的。

第二部分或许可以自由地改写为"差异是什么?"或者"我能做些什么呢?"。

<强>差: ANSI类型终端使用颜色编号和颜色之间的另一个映射,而不是非ANSI终端。例如,一个黄色的代码在另一个上是青色的。只有两个不同的映射表。这些内容在维基百科上有很好的描述。

你能做些什么: 了解您拥有的终端类型,并使用相应的命令。 或者修改你的termcap。 不幸的是,这些解决方案都不是完全通用的。