PuTTY/MinTTY 和 Tmux/Byobu 中的功能键快捷键

PuTTY/MinTTY 和 Tmux/Byobu 中的功能键快捷键

作为 Stack Exchange 的长期潜水员,我无需注册账户就能找到大多数问题的答案。但今天我完全被这个问题难住了,所以我来寻求帮助。

我最近发现了 Byobu,它是 Tmux 的一个前端,它使用 Fn 键执行常见任务。对于通过 SSH 从我在工作时必须使用的 Windows PC 到远程 Linux 服务器进行多任务处理来说,这真是一个福音。

目前,我正在通过 SSH 隧道使用 gnome-terminal,因为 PuTTY 和 MinTTY(Cygwin 的默认终端)似乎都发送了错误的功能键键代码。

我想知道是否有办法重新映射某些转义代码,以便我的至少一个基于 Windows 的终端可以与 Tmux 正常配合使用。(我想我可以只学习 Ctrl+b/Ctrl+a 组合键,但执行一个组合键后再按另一个键对我来说并不真正符合人体工程学。)

在 PuTTY 中,将终端 > 键盘 >“功能键和小键盘”设置为“XtermR6”似乎可以正常推送 Fn 键的正确转义序列,但 Shift 和 Ctrl 修饰键已损坏。我可以使用 vim 找出每个终端发送的代码。同时,我想我可能已经查找了 tmux 正在寻找的组合它的源代码,但我不确定:

Key              Tmux Expects    Gnome-Terminal   PuTTY    MinTTY
Normal F3:                       ^[0R             ^[0R     ^[0R
Ctrl+F3          "\033[13^"      ^[01;5R          ^[0R     ^[[1;5R
Shift+F3         "\033[13$"      ^[01;2R          ^[[25~   ^[[1;2R
Ctrl+Shift+F3    "\033[13@"      ^[01;6R          ^[[25~   ^[[1;6R

到目前为止,MinTTY 看起来是最佳选择,但它给我带来了一个完全不同的问题,即 byobu 忽略了 95% 的 Fn 键按下,直接将它们传递给客户端应用程序。我可以运行 cat -v 并反复按下 F2(新窗口)键,它会打印出“^[0Q”四五次,然后突然生成一个新窗口。

如果有人有建议,我会非常欢迎。我在网上找到的大多数资料都说要更改终​​端类型,但我几乎尝试了这两个程序提供的所有组合。

谢谢!

答案1

我在使用 PuTTY 和屏幕时也遇到过类似的问题(我无法使用Ctrl修改器)。我找到的解决方案是猫咪- PuTTY 的分支,维护得更好(最后更新于 2015/06/02 22:02)。我的Ctrl密钥问题已经解决。

默认情况下,Kitty 使用 Fn 键作为自己的快捷键,但你可以用其他方式配置,因此 Fn 按键将被发送到您的应用程序。

答案2

我自己也以同样的方式使用 BYOBU。我现在只使用 cygwin,因为 F2、3、4 和 F6 对我来说很管用,而这些是我真正关心的唯一键。然而,当我使用 putty 时,我最成功的方法是将“功能键和键盘”设置为模拟 VT100+

答案3

在 putty 或 kitty 中,在配置下,转到连接/数据并将终端从 xterm 更改为 putty-256color。就是这样。

相关内容