Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terminal 转义码VT102和ANSI_Terminal_Ansi_Xfce_Vt100 - Fatal编程技术网

Terminal 转义码VT102和ANSI

Terminal 转义码VT102和ANSI,terminal,ansi,xfce,vt100,Terminal,Ansi,Xfce,Vt100,我使用minicom通过串行线与一个设备进行通信,该设备转储接收到的十六进制字符。我这样做是为了查看一些钥匙的转义码。我用VT102终端模拟和ANSI试过一次minicom 对于VT102和ANSI,箭头键对应于 Up: Esc [ A Down: Esc [ B Right: Esc [ C Left: Esc [ D 例如,这与我在几个网站上找到的匹配 我尝试了其他在web上找不到任何参考的键: VT102 ANSI Home: E

我使用minicom通过串行线与一个设备进行通信,该设备转储接收到的十六进制字符。我这样做是为了查看一些钥匙的转义码。我用VT102终端模拟和ANSI试过一次minicom

对于VT102和ANSI,箭头键对应于

Up:    Esc [ A
Down:  Esc [ B
Right: Esc [ C
Left:  Esc [ D
例如,这与我在几个网站上找到的匹配

我尝试了其他在web上找不到任何参考的键:

            VT102         ANSI
Home:     Esc [ 1 ~      Esc [ H
End:      Esc O F        Esc O F
Insert:   Esc [ 2 ~      Esc [ @
这些代码是标准的吗?什么标准?我在网上哪里可以找到匹配的

如果我尝试通过命令行(xfce终端),按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 ~
对于特殊的键没有标准。现有的标准(最近一次修订于1991年)只处理应用程序可以发送到终端的控制序列(只有极少量的控制序列会引起终端的响应)

特殊键(以及最常用的控制序列)记录在例如ncurses中。但是在阅读终端描述时,您必须记住,许多终端可以发送不同的转义序列(或者根本没有)这取决于他们设置的模式。这些终端模拟器的开发人员将对此进行记录,但对于给定的示例,开发人员没有提供这些信息


ncurses中的内容是唯一的文档:xfce terminal和gtkterm正在使用VTE实现所有相关功能。如果您查看这些功能的依赖关系,您将看到一些版本信息,这些信息可能与ncurses(开始)中的描述相关.

我必须编写一个命令解释器。我使用vt220来解释“end”、“insert”和“home”键的转义码,但是“end”minicom发送的序列不是我所期望的。所以我想知道的是,是我编写的解释器错误了,还是minicom发送的序列错误了。我还希望我的解释器能够兼容更多的软件,以及minicvom、gtkterm和TeraTerm。