我知道我可以这样做:
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我还没有能够通过~/.screenrc的termcap或terminfo命令尝试定义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|