据我所知terminfo(5),kcuu1 应该是按下向上箭头时终端发送的序列。我从来没有见过除了^[[A(现在谈论cat,搞乱终端设置等)以外的任何东西。那么,鉴于我使用的终端(rxvt、gnome-terminal、iTerm)都默认为 TERM=xterm,为什么不是 kcuu1 \E[A?
我看到 cuu1是 \E[A,但是(再次从手册页),这是我应该发送到终端以移动光标的字符串,而不是终端发送给我的字符串。
顺便说一句,这是 OS X 的情况。
我正在用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键盘发送模式 -键盘代码和其他一些特殊代码是通过8051的PORT中的串行线输出来传输的。所传输的信号通过键盘电缆,显示器和视频电缆从8051传输到驱动器。到CPU。8051内的UART控制传输“
我vim分别在进入和离开时得到这些代码。我可以安全地忽略这些代码,还是需要处理它们?在后一种情况下,我该怎么办?