转义码VT102和ANSI

问题描述 投票:0回答:1

我使用minicom通过串行线路与一个转储以十六进制接收的字符的设备进行通信。我这样做是为了查看某些键的转义码。我使用VT102终端仿真和ANSI一次尝试过minicom。

对于VT102和ANSI,箭头键对应

Up:    Esc [ A
Down:  Esc [ B
Right: Esc [ C
Left:  Esc [ D

这与我在几个网站上找到的相匹配,例如VT102 User Guide

我尝试了其他密钥,我在整个网络上找不到任何参考:

            VT102         ANSI
Home:     Esc [ 1 ~      Esc [ H
End:      Esc O F        Esc O F
Insert:   Esc [ 2 ~      Esc [ @

这些代码是标准的吗?什么标准?我在哪里可以找到互联网上的比赛?

如果我尝试命令行(xfce-terminal),按此顺序按Home,End和Insert:

$ cat | hexdump -C
^[[H^[[F^[[2~00000000  1b 5b 48 1b 5b 46 1b 5b  32 7e                    |.[H.[F.[2~|

似乎Home等于Minicom ANSI序列,End将'O'改为'[',而Insert等于Minicom VT102转义序列。 同样运行GtkTerm。

我在Windows上尝试使用TeraTerm,结果仍然不同。

总结

           Minicom VT102        Minicom ANSI    xfce-terminal & GtkTerm    TeraTerm VT100/VT102
Home:         Esc [ 1 ~           Esc [ H              Esc [ H                   Esc [ 1 ~
End:          Esc O F             Esc O F              Esc [ F                   Esc [ 4 ~
Insert:       Esc [ 2 ~           Esc [ @              Esc [ 2 ~                 Esc [ 2 ~
terminal ansi xfce vt100
1个回答
0
投票

特殊键没有标准。现有标准(最近,ECMA-48最后修改于1991年)仅处理应用程序可以发送到终端的控制序列(具有非常少量的控制序列,其引起来自终端的响应)。

特殊键(和最常用的控制序列)记录在terminal databases中,例如ncurses's。但是在阅读终端描述时,您必须记住,许多终端可以根据它们设置的模式发送不同的转义序列(或根本不发送)。这些将由这些终端仿真器的开发人员记录,但对于给定的示例,开发人员不提供该信息。

什么是ncurses是唯一的文档:xfce终端和gtkterm是"skins"使用VTE获取所有相关功能。如果你查看那些依赖项,你会看到一些版本信息可以与ncurses中的描述相关(启动here)。

© www.soinside.com 2019 - 2024. All rights reserved.