3

应该如何解释来自 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)。

有谁知道吗?

4

2 回答 2

3

xterm 响应的文档很容易在XTerm 控制序列中找到

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

       
CSI Ps c 发送设备属性(主 DA)。
            Ps = 0 或省略⇒ 从终端请求属性。这
          响应取决于 decTerminalID 资源设置。
            ⇒ CSI ? 1; 2 c(“带有高级视频选项的 VT100”)
            ⇒ CSI ? 1; 0 c(“没有选项的 VT101”)
            ⇒ CSI ? 6 c ("VT102")
            ⇒ CSI ? 6 2 ; Psc ("VT220")
            ⇒ CSI ? 6 3 ; Psc ("VT320")
            ⇒ CSI ? 6 4 ; Psc ("VT420")

          VT100 风格的响应参数没有任何意义
          他们自己。VT220(及更高版本)参数确实如此,告诉
          host 终端支持哪些功能:
            Ps = 1 ⇒ 132 列。
            Ps = 2 ⇒ 打印机。
            Ps = 3 ⇒ ReGIS 图形。
            Ps = 4 ⇒ Sixel 图形。
            Ps = 6 ⇒ 选择性擦除。
            Ps = 8 ⇒ 用户定义的键。
            Ps = 9 ⇒ 国家替换字符集。
            Ps = 1 5 ⇒ 技术特征。
            Ps = 1 6 ⇒ 定位器端口。
            Ps = 1 7 ⇒ 终端状态询问。
            Ps = 1 8 ⇒ 用户窗口。
            Ps = 2 1 ⇒ 水平滚动。
            Ps = 2 2 ⇒ ANSI 颜色,例如 VT525。
            Ps = 2 8 ⇒ 矩形编辑。
            Ps = 2 9 ⇒ ANSI 文本定位器(即 DEC 定位器模式)。
xt 定位器(即 DEC 定位器模式)

我的 WAG 一些仿真器没有完全/正确地实现这一点,所以如果你依赖它,你需要逐案进行。

于 2013-08-22T12:08:20.490 回答
1

根据VT100.net,64 似乎表示 VT-420 功能:

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

但正如乔治指出的那样,并且在当天破解了一些 termcap 条目后,即使是单一终端类型在回复查询时所回答的内容也几乎没有一致性。

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

于 2013-08-22T12:27:24.890 回答