这个问题的范围:https://unix.stackexchange.com/q/467025/256195
但现在在运行tmux
内部sessionA
创建后sessionB
,实际上首先 tmux 创建一个新的命名会话1
,我需要将名称更改为sessionB
.如何?
我可以在命令行(zsh>
)中进行更改并且它可以工作,但是在zsh
脚本中,输出不断显示 - 我只需从脚本复制并粘贴到命令行,并且在命令中它可以按照我的预期完美工作:
can't find session 1
can't find session 2
即使在zsh
脚本中按顺序排列, tmuxzsh
也会以意想不到的行为处理命令。
注意:我tmux
在第window
一个sessionA
.
编辑:在命令行中我可以看到会话名称1
存在,但是当我尝试在 zsh 脚本中重命名它时它失败了,但在命令中它可以工作。
答案1
我不确定我完全理解你的问题,但如果你在 tmux 会话中使用 tmux 会话,则必须使用绑定键序列两次,然后使用命令键。
例如,如果您想将嵌套的 tmux 会话拆分为两个窗格,您可以使用Ctrl+b, Ctrl+b, ",它假定您具有默认的键绑定。
答案2
据我现在的理解,当您在脚本中时,无法连接以获取未命名会话的正确会话名称,这意味着在通过在会话内部zsh
调用创建未命名会话后,您将被禁用- 假设会话索引自.tmux
tmux
rename-session -t2
1
但从逻辑上讲,新的未命名会话来自window
所以应该是rename-session -t1:1:2 <NewNAME>
t1:2:1
-t1
是会话1
,:1
是窗口1
,:2
是新的嵌套未命名会话。
在创建嵌套会话之前,我们有1
会话、1
窗口。
所以解决方案是我们创建新窗口并在其中显式创建-s
会话-n
。