如何将操作绑定到屏幕上的Ctrl-f1?

我知道我可以这样做:

bindkey "...." action 

在哪里….是我通过inputctrl-v然后按Ctrl-f1。 但它看起来不好,包含不好的字符(^ [),并且一般不酷。

绑定到f1时,我可以这样做:

 bindkey -k k1 action 

但我似乎无法findctrl-functionkey的termcap能力名称。

我在哪里可以find它?

当我在terminal按ctrl-v ctrl-f1时,我得到:

 ^[O5P 

这些是4个字节,而不是5:

 =$ echo "^[O5P" | hexdump -C 00000000 1b 4f 35 50 0a |.O5P.| 

不幸的是, screen显然不了解足够的function键能够处理Ctrl-F1。 至less我还没有能够通过~/.screenrctermcapterminfo命令尝试定义FF或kf25后, bindkey -k FF stuff "pressed Ctrl-F1"来工作。 我还尝试了bindkey命令中的“kf25”。 在任何一种情况下,我都会收到一个“bindkey:unknown key”消息。

也许你或其他人可以在这里使用这些信息来获得更多的信息。

否则,你可以继续使用丑陋的uncool方法。 对于旁观者来说,使用硬编码转义序列而不是能力名称是不可取的,因为它不能移植到其他terminaltypes。

能力名称:

                     termcap terminfo xterm

 F1 k1 kf1 ^ [OP

 Shift-F1 F3 kf13 ^ [O2P

 Ctrl-F1 FF kf25 ^ [O5P

 Ctrl-Shift-F1 FR kf37 ^ [O6P

输出输出:

 $ tput -Txterm kf25 | hd 00000000 1b 4f 35 50 |.O5P|