如何解释来自vt-100 / vt-102 DA请求的响应

时间:2013-08-22 11:44:28

标签: python curses terminal-emulator ansi-escape

如何解释DA转义序列(\e[c)的响应?

在urxvt中运行命令时,我得到1;2,在linux控制台(和st)中我得到6;,在xterm中得到64;1;2;6;9;15;18;21;22

从我在互联网上能够找到的这些字符串应该以某种方式识别终端功能。 http://www.vt100.net/docs/vt100-ug/chapter3.html#DA

No options                  ESC [?1;0c
Processor option (STP)      ESC [?1;1c
Advanced video option (AVO) ESC [?1;2c
AVO and STP                 ESC [?1;3c
Graphics option (GPO)       ESC [?1;4c
GPO and STP                 ESC [?1;5c
GPO and AVO                 ESC [?1;6c
GPO, STP and AVO            ESC [?1;7c

这似乎与urxvt(可能是xterm)的响应相符,但与其他响应不一致。所有提到的终端似乎都相当兼容VT-102,据我所知,它将映射到1; 2(AVO)。

那里有谁知道?

2 个答案:

答案 0 :(得分:2)

很容易找到xterm响应的文档

http://www.xfree86.org/current/ctlseqs.html#VT100%20Mode

请注意,与所有xwindows应用程序一样,有一个资源可以将响应更改为您想要的任何内容..

       

Send Device Attributes (Primary DA)

P s = 0 or omitted → request attributes from terminal. The response depends on the decTerminalID resource setting.
→ CSI ? 1 ; 2 c (‘‘VT100 with Advanced Video Option’’)
→ CSI ? 1 ; 0 c (‘‘VT101 with No Options’’)
→ CSI ? 6 c (‘‘VT102’’)
→ CSI ? 6 0 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; c (‘‘VT220’’)
The VT100-style response parameters do not mean anything by themselves. VT220 parameters do, telling the host what features the terminal supports:
→ 1 132-columns
→ 2 Printer
→ 6 Selective erase
→ 8 User-defined keys
→ 9 National replacement character sets
→ 1 5 Technical characters
→ 2 2 ANSI color, e.g., VT525
→ 2 9 ANSI text locator (i.e., DEC Locator mode)

我的WAG某些模拟器没有完全/正确地实现这一点,所以如果您依赖它,则需要逐个进行。

答案 1 :(得分:1)

根据VT100.net,64似乎指定VT-420功能:

  

VT420 DA * CSI? 64; 1; 2; 6; 7; 8; 9; 15; 18; 19; 21 c VT420终端

但正如george所指出的那样,并且在当天已经破解了一些termcap条目,即使单个终端类型在回复查询时所回答的内容也很少。

该网站上有大量信息,所有这些信息都被作者视为“尽力而为”,因为“权威”实际上是无法实现的。