Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
据我所知terminfo(5), kcuu1 应该是按下向上箭头时终端发送的序列。我从来没有见过,除了^[[A(现在谈论cat,混乱的终端设置等)之外的任何东西。那么,鉴于我使用的终端(rxvt、gnome-terminal、iTerm)都默认为 TERM=xterm,为什么不是 kcuu1 \E[A?
terminfo(5)
^[[A
cat
\E[A
我看到 cuu1是 \E[A,但是(再次从手册页),这是我应该发送到终端以移动光标的字符串,而不是终端发送给我的字符串。
顺便说一句,这适用于 OS X。
箭头和其他特殊键(terminfo 将它们称为“键盘”)根据终端是否处于“应用程序模式”发送不同的代码。想要使用各种k*键的应用程序应该首先输出smkx(rmkx最后恢复旧行为)。
k*
smkx
rmkx
您可以尝试Ctrl+V Up在 vi(或类似的终端应用程序)中查看Up确实发送到\EOA那里。
\EOA
有关更多详细信息,请参阅这些链接: