我正在javascript中实现vt100终端模拟器,而vt100规范(来自man terminfo
和infocmp
)告诉我smkx=\E[?1h\E=
是进入键盘传输模式的代码, rmkx=\E[?1l\E>
是离开“键盘传输”模式的代码。我无法理解键盘传输模式是什么。
来自http://vt100.net/dec/ek-vt220-tm-001.pdf,
7.4.4.1键盘发送模式 - 键盘代码和一些其他特殊代码通过PORT中的串行线路输出传输 8051.传输的信号从8051传输到驱动器,通过键盘电缆,监视器和视频电缆连接到CPU。内部的UART 8051控制传输“
我分别在进入和离开vim
时收到这些代码。我可以安全地忽略这些代码,还是需要处理它们?在后一种情况下,我该怎么办?
答案 0 :(得分:5)
这两个字符串各包含两个序列;他们控制着微妙的不同之处:
第一个,
CSI ? 1h
CSI ? 1l
控制DEC专用模式编号1,DECCKM
,光标键模式。此模式确定四个箭头键(向上,向下,向左,向右)是否将发送SS3或CSI前缀序列。
第二对序列,
ESC =
ESC >
称为DECKPAM
,键盘应用程序模式和DECKPNM
键盘数字模式。这决定了数字键盘是发送控制序列还是正常数字(即认为它类似于Numlock功能)。
答案 1 :(得分:0)
smkx / rmkx控制键盘是否传输数字或转义码。此外,它是“键盘传输模式”而不是“键盘传输模式”