获取Perl中的当前终端颜色对

获取Perl中的当前终端颜色对,perl,termcap,Perl,Termcap,我正在尝试学习终端窗口中的彩色文本。(如果有问题,我正在使用OS X上的Terminal.app。)我想获得终端当前的前景和背景颜色对。看起来我应该能够使用Term::Cap库在perl脚本中获得这些信息,但我没有找到解决方案 在perl脚本中,我将如何查询终端当前的前景和背景颜色对值?我认为大多数终端不支持报告这一点,而且termcap或terminfo似乎没有任何条目。您只需要根据需要设置颜色对,而不是询问终端它现在设置为什么。在ECMA-48标准中(在ANSI X3.64之后更好地称为“A

我正在尝试学习终端窗口中的彩色文本。(如果有问题,我正在使用OS X上的Terminal.app。)我想获得终端当前的前景和背景颜色对。看起来我应该能够使用Term::Cap库在perl脚本中获得这些信息,但我没有找到解决方案


在perl脚本中,我将如何查询终端当前的前景和背景颜色对值?

我认为大多数终端不支持报告这一点,而且termcap或terminfo似乎没有任何条目。您只需要根据需要设置颜色对,而不是询问终端它现在设置为什么。在ECMA-48标准中(在ANSI X3.64之后更好地称为“ANSI”,它曾经存在于此),唯一引用颜色的命令是SGR“Set Graphic Rendition”,它是纯写的。

不知道perl或Terminal.app,但如果输出
"\033]10;?\07“
”\033]11\07“
。请特别检查。

该功能不在terminfo和termcap的范围内,因为它处理终端响应,而terminfo/termcap描述了这些功能:

  • 如何告诉终端执行一些常用的功能(如清除屏幕),或
  • 某些特殊键(如Home)可能从键盘发送的字符序列
虽然原则上,终端描述的一部分没有限制,但在20世纪80年代,终端之间的响应几乎没有共同性。少数终端可以报告特定功能,其中大多数是不变的(例如,版本信息)。大多数变量响应都是在terminfo/termcap在X/Open Curses中或多或少固化之后出现的。但同样,大多数扩展都是功能或特殊键

Terminal.app实现了xterm最常用的功能,但是(与其他模仿者一样)省略大多数终端响应。除其他外,
xterm
提供终端响应,可以告诉应用程序当前窗口的颜色。有几个命令行实用程序(和)已编写为使用此信息(同样,它们只涵盖部分曲目)。使用xtermcontrol表明Terminal.app在该区域中缺失-请参见屏幕截图:


我想你是对的。我确实阅读了很多手册页,得出了相同的结论,即当前的颜色对是一个只写属性,但由于终端编程对我来说是全新的,我想问一下,以防我遗漏了什么。谢谢你的帮助。