在Debian系统上,END
按键会生成^[[F
:
$ showkey -a
Press any keys - Ctrl-D will terminate this program
^[[F 27 0033 0x1b
91 0133 0x5b
70 0106 0x46
但是,为什么此键盘和弦不在terminfo中?
$ infocmp -1 | grep end
kend=\EOF,
但是,ncurses设法正确地将其识别为KEY_END
。怎么样?
TERM
是 xterm-256color
顺便说一句,拥有kend
而end
不是正义的动机是end
什么?(与khome
和相同home
)
编辑
正如JohanMyréen的评论中所说,khome
字符串是按Home键产生的序列。但是在Debian上按Home键会产生home
。为什么?
$ showkey -a
Press any keys - Ctrl-D will terminate this program
^[[H 27 0033 0x1b
91 0133 0x5b
72 0110 0x48
$ infocmp -1 | grep home
home=\E[H,
khome=\EOH,
kend
定义,而终端生成?这是Debian的terminfo中的错误吗?而ncurses如何设法将其检测出来?\EOF
\E[F
KEY_END
home
和khome
是,khome
字符串是按主页键产生序列,而home
字符串是应当被发送到所述终端,将光标移动到起始位置的序列。据我所知,terminfo并没有定义end
功能kend
。