6

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

如果 termcap/terminfo/tput 的全部目的是独立于设备,为什么会有明确使用 ANSI 控件(setaf/setab)的版本和不(不应该)使用的版本?

该讨论引用了 terminfo(5) ,后者又引用了明确表示将分别使用 ANSI 而不是 ANSI 实现的标准。

为什么不只是 setf/setb 而他们总是设置前景色和背景色。我不在乎它是如何完成的,这就是我使用 tput 的原因!

4

1 回答 1

1

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

第一部分,为什么有 ANSI 和非 ANSI 终端命令需要很长时间来解释,而且它是不必要的,因为历史在 Wikipedia 上有很好的解释。

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

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

你可以做些什么: 发现你有哪种类型的终端,并使用相应的命令。或修改您的 termcap。不幸的是,这些解决方案都不是完全通用的。

于 2014-10-16T20:35:24.793 回答