如何在嵌套 tmux 中滚动?

XeI*_*Ite 5 tmux

有时,我必须使用嵌套的 tmux 会话(tmux in tmux)。通过复制模式滚动在内部 tmux 会话中不起作用,因此这使我在内部会话中非常不方便。

我听说有元密钥可以将 tmux 命令发送到内部会话。有有效的按键绑定可以在内部会话中滚动吗?

Fer*_*iro 1

tmux copy-mode会做的。运行该命令将在内部会话中更改为复制模式,您可以像往常一样滚动。

另一个选项是使用bindsend-prefix,将某个键绑定到send-prefix操作,该操作将前缀发送到嵌套会话。就我而言,它是:

set -g prefix C-a
bind a send-prefix
Run Code Online (Sandbox Code Playgroud)

默认前缀是C-b,在这种情况下使用可能更合理b

这样,您只需 Control+A(或 B 或其他),然后释放 Control 并再次按相同的键(在我的情况下为 A,B 对于使用默认C-b前缀的人来说似乎更好,恕我直言)。这会将前缀发送到内部会话。现在,无论您按下什么键,都会在内部会话中触发一个命令。即: [Control+A] 然后 [%] 为我垂直分割窗口。当然,这是在外部会议上。然后,通过send-prefix我提到的绑定,我可以执行 [Control+A],然后 [A],然后 [%],它会在内部会话中分割窗口。

它非常漂亮,在连接到服务器时对于滚动内容、搜索等很有用,一旦你习惯了它,它就会变成肌肉记忆。另外,您可以执行 [Ctrl+A],然后 [A],然后 [D] 来分离内部会话,这将允许您建立exitssh 连接,或者如果您有在连接时自动启动 tmux 的配​​置,则完全结束 SSH 连接。

当然,您可以绑定send-prefix到其他键,可能-n可以使用 [Ctrl+A] 作为前缀,也可以使用 [Ctrl+S] 将前缀发送到内部会话。