在嵌套 tmux 会话之间切换

在嵌套 tmux 会话之间切换

我正在编写一个设置嵌套会话的 zsh 脚本。我有一个会话和该会话中的一个会话。

sessionA
   sessionB

我可以sessionA在分离模式下创建-d,然后tmux在其中调用以创建嵌套sessionB,但如何切换到sessionB

我查了一下manpage,没有switch-session选项。非常感激。

答案1

您首先要开始一个会话:

tmux new-session -s [session-name] -n [first-tmux-screen-name] -d

我们现在可以使用 splitw 选项将此窗口分成几个部分:

tmux splitw -h
tmux splitw -v

我们也可以选择一个部分:

tmux selectp -t0
tmux splitw -v

根据我们想要显示的内容或在每个嵌套窗口中运行的内容,我们使用 send-key 选项。如果我们想向此 tmux 会话添加一个新窗口,我们可以使用以下命令:

tmux new-window -n [name-of-new-window] -t [session-name]

zsh 对我有用:

#!/bin/zsh

tmux new-session -s test -n four-screen -d
tmux splitw -h
tmux splitw -v
tmux selectp -t0
tmux splitw -v

运行脚本后:zsh scriptname.zsh 然后附加到会话:tmux Attach

答案2

一个简单的解决方案是分离然后直接附加到 sessionB。

tmux attach-session -t sessionB

答案3

看来我的问题有点不清楚。

在这里,我想在嵌套会话上执行任务,但在谷歌搜索后,我可以通过send-keys指定要执行的会话名称的选项来实现该目的。因此,无需切换到我需要处理的会话 - 我处于zsh脚本角度。

相关内容