我们使用 tmux 的方式是 ssh 进入主服务器,然后我们将打开 tmux,并为我们 ssh 进入的每个服务器创建一个新窗口(CS,提示输入服务器,然后这将创建一个新窗口并 ssh 进入服务器)。我想做的是绑定 C-\ 和 C-"-" 以将当前窗口和 ssh 拆分到同一台服务器中,而不是为主服务器打开一个窗口。我们的主目录已安装,因此我的 .tmux.conf 和脚本都跟随我到每台服务器。
每个窗口都设置了服务器名称,但将来我们可能会尝试将其设置为服务器名称,任务(例如“srv001,htop”)取决于它是如何工作的:)
我们找到的最接近的方法是嵌套并使用插件来更改哪个服务器 tmux 将响应前缀。然后嵌套的窗口将拆分并在该服务器上显示另一个窗格。那时我可能只是做另一个 CS(提示输入 ssh 服务器名)并加入窗口(这说明作为替代方案不是一个坏主意)
感谢您的任何方向,评论,问题。
所以你 ssh 进入 server1 并运行 tmux,然后从 tmux 内部 ssh 进入 server2。然后你想绑定一个键来分割窗口,还要ssh到server2?那是对的吗?
假设这是对的,这是让 tmux 根据当前窗口的现有状态做某事的相对常见的问题,答案是您需要在创建窗口之前或从窗口内部告诉它状态。
因为您已经有创建窗口的快捷方式,您可以将服务器名称存储在
C-s
绑定中,然后在新C-\
绑定中使用它。例如,更改
C-s
绑定以在目标主机的窗口上设置用户变量,如下所示 - 注意这是set-option
从新窗口内部执行的,但在它运行 ssh 之前:然后您可以在
C-\
绑定中使用它(run-shell
扩展格式):如果它已经是主机,您可以对窗口名称执行类似操作:
但是,如果您更改窗口名称的格式,或者手动重命名窗口,这将不起作用。
(如果您看到我之前的回答,我最初认为您可以使用该环境,但当然这是每个会话而不是每个窗口,它必须是一个用户变量。)