![如何在嵌套的远程会话中使用 Byobu 键绑定?](https://linux22.com/image/833304/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%B5%8C%E5%A5%97%E7%9A%84%E8%BF%9C%E7%A8%8B%E4%BC%9A%E8%AF%9D%E4%B8%AD%E4%BD%BF%E7%94%A8%20Byobu%20%E9%94%AE%E7%BB%91%E5%AE%9A%EF%BC%9F.png)
我正在使用 Byobu(与 Tmux 一起使用,在 gnome-terminal 内部),但它的键绑定有点问题(我可能无法理解)。
我启动 byobu,打开几个窗口,然后从其中一个窗口,我 ssh 到另一台机器并在那里启动 byobu。无论我按Ctrl-c还是Ctrl- a- c,我都不确定如何在这个远程会话中创建和切换窗口。
注意:如果我输入Shift-F12我可以使用远程会话中的功能键在窗口之间切换,但这并不理想,因为我还需要在主会话中在窗口之间切换。
有任何想法吗?
在此先感谢您的帮助。
答案1
我发现使用 来Shift-F12打开/关闭外部 byobu 的按键绑定更容易记住和使用。唯一需要记住的新键是Shift-F12,然后可以使用常规 F 键绑定来控制内部 byobu。
找到解决方案这里。
同样有用的是Shift-F12在 byobu 内部帮助的键绑定列表中列出的,可以通过Shift-F1菜单F1的“帮助 - 快速入门指南”访问。
答案2
我假设您已将 byobu 配置为使用Ctrl-A作为 tmux 的转义序列。
您在终端中输入的命令首先由本地 tmux 实例处理,然后由嵌套的 tmux 会话处理。这意味着您需要退出两次才能转到嵌套实例:
- Ctrl- a c#在本地会话中打开一个窗口
- Ctrl- a Ctrl- a c# 在远程会话中打开一个窗口
如果第二行不起作用,请尝试(如@artm 指出)
- Ctrl- a a c# 第二个没有Ctrl
答案3
Ctrl-a Ctrl-a
对我来说也没有用。我发现在注释掉下面这行之后,它就起作用了.byobu/keybindings.tmux
:
unbind-key -n C-a
另一个解决方法是使用内部 Tmuxsend-key
命令:
- 选择嵌套会话运行的窗格或窗口
- 按Ctrl+ a :Enter
send-key -2
,然后输入要发送的命令或键
例子:
- Ctrl+ a :
send-key -2
c= 创建新窗口 - Ctrl+ a :
send-key -2
p= 切换到上一个窗口 - Ctrl+ a :
send-key -2
n= 切换到下一个窗口
不是很直观,但即使使用 Putty 也可以工作。