获取Perl中的当前终端颜色对
我正在尝试学习终端窗口中的彩色文本。(如果有问题,我正在使用OS X上的Terminal.app。)我想获得终端当前的前景和背景颜色对。看起来我应该能够使用Term::Cap库在perl脚本中获得这些信息,但我没有找到解决方案获取Perl中的当前终端颜色对,perl,termcap,Perl,Termcap,我正在尝试学习终端窗口中的彩色文本。(如果有问题,我正在使用OS X上的Terminal.app。)我想获得终端当前的前景和背景颜色对。看起来我应该能够使用Term::Cap库在perl脚本中获得这些信息,但我没有找到解决方案 在perl脚本中,我将如何查询终端当前的前景和背景颜色对值?我认为大多数终端不支持报告这一点,而且termcap或terminfo似乎没有任何条目。您只需要根据需要设置颜色对,而不是询问终端它现在设置为什么。在ECMA-48标准中(在ANSI X3.64之后更好地称为“A
在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)可能从键盘发送的字符序列
xterm
提供终端响应,可以告诉应用程序当前窗口的颜色。有几个命令行实用程序(和)已编写为使用此信息(同样,它们只涵盖部分曲目)。使用xtermcontrol表明Terminal.app在该区域中缺失-请参见屏幕截图:
我想你是对的。我确实阅读了很多手册页,得出了相同的结论,即当前的颜色对是一个只写属性,但由于终端编程对我来说是全新的,我想问一下,以防我遗漏了什么。谢谢你的帮助。