转义码VT102和ANSI

时间:2019-01-31 16:42:01

标签: terminal ansi xfce vt100

我使用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 ~

1 个答案:

答案 0 :(得分:0)

特殊键没有标准。现有标准(最近的ECMA-48最近在1991年修订)仅处理应用程序可以发送到终端的控制序列(很少的控制序列会引起 response 从终端)。

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

ncurses的唯一文档是:xfce terminal和gtkterm "skins"使用VTE来实现所有相关功能。如果您查看这些依赖关系,则会看到一些版本信息,这些信息可能与ncurses中的描述有关(从here开始)。