如何将动作绑定到屏幕上的 ctrl-f1?

如何将动作绑定到屏幕上的 ctrl-f1?

我知道我能做到:

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"在我尝试使用中的termcapterminfo命令定义 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|

相关内容