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


18

作为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”四到五次。

如果有人提出建议,将非常欢迎。我在互联网上找到的大多数内容都说要更改终​​端类型,但实际上我已经尝试了两种程序提供的每种组合。

谢谢!


3
您为tmux列出的序列只是它可以识别的rxvt样式的修改键序列。tmux还可以识别TERM的terminfo条目指定的(未修改的)序列(例如,kf3从连接到tmux时所使用的TERM )以及xterm样式的修饰键序列from xterm-keys.c。因此,您从Gnome-Terminal和MinTTY报告的序列(尽管序列中的escape + zeros应该是escape + letter-ohs(aka SS3))应该由tmux识别,但是只有在具有xterm-keys选项已启用
克里斯·约翰森

Answers:


1

我在PuTTY和屏幕上遇到了类似的麻烦(我无法使用Ctrl修饰符)。我发现的解决方案是KiTTY -PuTTY的分支,维护得更好(最新更新来自2015/06/02 22:02)。我的Ctrl钥匙问题消失了。

默认情况下,Kitty将Fn键用作其自己的快捷键,但是您可以通过其他方式对其进行配置,因此Fn按键将发送到您的应用程序。


0

我自己以相同的方式使用BYOBU。这些天我只使用cygwin,因为F2、3、4和F6才对我有用,而这些才是我真正关心的。但是,当我使用腻子时,将“功能键和小键盘”设置设置为模拟VT100 +时,我获得了最大的成功。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.