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