附加到另一个 tmux 会话时是否可以自动从当前 tmux 会话分离?

附加到另一个 tmux 会话时是否可以自动从当前 tmux 会话分离?

当尝试从 tmux 会话中附加到新的 tmux 时,会显示错误:

sessions should be nested with care, unset $TMUX to force

为什么会话不应嵌套是可以理解的,但它会使 tmux 会话之间的跳转变得烦人,因为您需要手动分离然后重新附加到新会话。

是否可以创建一个从当前 tmux 会话分离并附加到给定会话的命令,而无需取消设置 $TMUX?

我尝试过alias tm="tmux detach; tmux new -A -s",但是这不起作用,这并不奇怪,因为tmux new -A -s运行的是我刚刚分离的外壳,而不是我要返回的外壳。

答案1

detach-client [-aP] [-E shell-command] [-s target-session] [-t target-client]

[...] 使用-E,运行shell-command以替换客户端。

来源

tm() { tmux detach -E "tmux new -A -s '$1'"; }

您可能需要添加一些逻辑来覆盖为空的情况$1

相关内容