为什么terminfo [kcuu1] =' \ EOA'?

时间:2015-07-26 21:00:59

标签: tty terminfo termcap

据我所知,阅读terminfo(5),kcuu1应该是按下向上箭头时终端发送的序列。我从来没有见过除^[[A以外的任何内容(现在谈论cat,搞砸了终端设置等)。所以,鉴于我使用过的终端(rxvt,gnome-terminal,iTerm)都默认为TERM = xterm,为什么不是kcuu1 \E[A

我看到cuu1 \E[A,但是(再次从手册页),我应该发送到终端移动光标的字符串,不是终端发给我的字符串。

BTW这是OS X.

1 个答案:

答案 0 :(得分:3)

箭头和其他特殊键(terminfo将它们称为"键盘")根据终端是否处于"应用模式"发送不同的代码。或不。想要使用各种k*密钥的应用程序应该首先输出smkx(并在最后输出rmkx以恢复旧的行为。)

你可以在vi(或类似的终端应用程序)中尝试 Ctrl + V Up ,看看 Up 确实发送了{{1那里。

有关详细信息,请参阅以下链接: