据我所知,阅读terminfo(5)
,kcuu1应该是按下向上箭头时终端发送的序列。我从来没有见过除^[[A
以外的任何内容(现在谈论cat
,搞砸了终端设置等)。所以,鉴于我使用过的终端(rxvt,gnome-terminal,iTerm)都默认为TERM = xterm,为什么不是kcuu1 \E[A
?
我看到cuu1 是 \E[A
,但是(再次从手册页),我应该发送到终端移动光标的字符串,不是终端发给我的字符串。
BTW这是OS X.
答案 0 :(得分:3)
箭头和其他特殊键(terminfo将它们称为"键盘")根据终端是否处于"应用模式"发送不同的代码。或不。想要使用各种k*
密钥的应用程序应该首先输出smkx
(并在最后输出rmkx
以恢复旧的行为。)
你可以在vi(或类似的终端应用程序)中尝试 Ctrl + V Up ,看看 Up 确实发送了{{1那里。
有关详细信息,请参阅以下链接: