转义码VT102和ANSI
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转义码VT102和ANSI相关的知识,希望对你有一定的参考价值。
我使用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 ~
特殊键没有标准。现有标准(最近,ECMA-48最后修改于1991年)仅处理应用程序可以发送到终端的控制序列(具有非常少量的控制序列,其引起来自终端的响应)。
特殊键(和最常用的控制序列)记录在terminal databases中,例如ncurses's。但是在阅读终端描述时,您必须记住,许多终端可以根据它们设置的模式发送不同的转义序列(或根本不发送)。这些将由这些终端仿真器的开发人员记录,但对于给定的示例,开发人员不提供该信息。
什么是ncurses是唯一的文档:xfce终端和gtkterm是"skins"使用VTE获取所有相关功能。如果你查看那些依赖项,你会看到一些版本信息可以与ncurses中的描述相关(启动here)。
以上是关于转义码VT102和ANSI的主要内容,如果未能解决你的问题,请参考以下文章
使用 ANSI / VT100 代码在 PowerShell 控制台中输出彩色文本
Python:如何使 ANSI 转义码在 Windows 中也能正常工作?