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
stringは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
よう\EOF
に定義されていますか?これはDebianのterminfoのバグですか?それでも、ncursesはどのようにしてそれを検出できますか?\E[F
KEY_END
home
とは、khome
ということであるkhome
のに対し、文字列がホームキーを押す順序は、生成されたhome
文字列がホーム位置にカーソルを移動する端末に送信する必要があるシーケンスです。私の知る限りでは、terminfoはend
機能を定義していませんkend
。