gpt4 book ai didi

ssh - 通过 SSH 连接时,如何获取 F1-F12 键以在 cygwin 的 gnu screen 中切换 screen ?

转载 作者:行者123 更新时间:2023-12-03 21:24:35 25 4
gpt4 key购买 nike

我正在通过 SSH 从 Mac OS X 中的终端应用程序连接到运行 cygwin 的桌面。我已经在 cygwin 端启动了屏幕,并且可以通过 SSH session 连接到它。此外,我在 .screenrc 文件中有以下内容:

bindkey -k k1 select 1  #  F1 = screen 1
bindkey -k k2 select 2 # F2 = screen 2
bindkey -k k3 select 3 # F3 = screen 3
bindkey -k k4 select 4 # F4 = screen 4
bindkey -k k5 select 5 # F5 = screen 5
bindkey -k k6 select 6 # F6 = screen 6
bindkey -k k7 select 7 # F7 = screen 7
bindkey -k k8 select 8 # F8 = screen 8
bindkey -k k9 select 9 # F9 = screen 9
bindkey -k F1 prev # F11 = prev
bindkey -k F2 next # F12 = next

但是,当我在屏幕中启动多个窗口并尝试通过功能键在它们之间切换时,我得到的只是一声哔声。

我尝试了 $TERM 的各种设置(例如 ansi、cygwin、xterm-color、vt100),但它们似乎并没有真正影响任何东西。

我已经验证终端应用程序实际上正在发送我期望的功能键的转义序列,并且我的 bash shell(在屏幕内运行)正在接收它。例如,对于 F1,它发送以下内容(hexdump 是我编写的一个 perl 脚本,它在 binmode 中获取 STDIN 并将其输出为十六进制/ascii 转储):
% hexdump
[press F1 and then hit ^D to terminate input]
00000000: 1b4f50 .OP

如果一切正常,我认为 bash 不应该接收转义序列,因为 screen 应该已经捕获它并将其转换为命令。

如何使功能键起作用?

最佳答案

如果你有一个更奇怪的设置(例如 Windows -> PuTTY -> Linux),其中标准 bindkey -k解决方案不太正确,您可以使用 showkey命令:

showkey -a

找到从击键到键码的映射。在我的特殊情况下,将这些放入 ~/.screenrc成功了:
bindkey "^[[11~" select 1
bindkey "^[[12~" select 2
bindkey "^[[13~" select 3
bindkey "^[[14~" select 4
bindkey "^[[15~" select 5
bindkey "^[[17~" select 6
bindkey "^[[18~" select 7
bindkey "^[[19~" select 8
bindkey "^[[20~" select 9
bindkey "^[[21~" select 10
bindkey "^[[23~" select 11
bindkey "^[[24~" select 12

关于ssh - 通过 SSH 连接时,如何获取 F1-F12 键以在 cygwin 的 gnu screen 中切换 screen ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com