我知道我能做到:
bindkey "...." action
其中 .... 是我通过输入 ctrl-v 然后输入 ctrl-f1 得到的。但是它看起来很糟糕,包含错误字符 (^[),并且通常不太酷。
当绑定到 f1 时,我可以执行以下操作:
bindkey -k k1 action
但我似乎找不到 ctrl-functionkey 的 termcap 功能名称。
在哪里可以找到它?
当我在终端上按下 ctrl-v ctrl-f1 时,我得到:
^[O5P
这些是 4 个字节,而不是 5 个:
=$ echo "^[O5P" | hexdump -C
00000000 1b 4f 35 50 0a |.O5P.|
答案1
不幸的是,screen
显然无法理解足够多的功能键,无法处理 Ctrl-F1。至少bindkey -k FF stuff "pressed Ctrl-F1"
在我尝试使用中的termcap
或terminfo
命令定义 FF 或 kf25 后,我仍无法开始工作~/.screenrc
。我也在命令中尝试了“kf25” bindkey
。无论哪种情况,我都会收到“bindkey:未知键”消息。
也许您或其他人能够利用这里的信息取得更大的进步。
否则,您可以继续使用丑陋、不酷的方法。对于旁观者来说,使用硬编码的转义序列代替功能名称是不酷的,因为它无法移植到其他终端类型。
功能名称:
termcap terminfo xterm F1 k1 kf1 ^[OP Shift-F1 F3 kf13 ^[O2P Ctrl-F1 FF kf25 ^[O5P Ctrl-Shift-F1 FR kf37 ^[O6P
输出自tput
:
$ tput -Txterm kf25 | hd
00000000 1b 4f 35 50 |.O5P|