我正在尝试使用tmux为开发会话编写模板脚本。因此,我只需要运行此脚本即可打开新的开发环境。每个会话将有多个窗口-说两个。可以在创建分离会话时以以下方式创建第一个窗口(Window1):
tmux新会话-s $ TMUX_SESSION_NAME -d -n Window1 (此处TMUX_SESSION_NAME是传递给脚本以命名会话的参数。)
但是,如何在同一会话下创建另一个窗口?
请注意,我可以如下创建它,但是在创建另一个会话时会弄乱。尽管tmux ls显示每个会话都有两个窗口,但是第二个会话包含了第一个会话的所有环境设置(两个都是完全不同的项目)
tmux新窗口-n Window2 tmux attach -t $ TMUX_SESSION_NAME
我怀疑这两个/所有会话都在同一个/ tmp / tmux-SOME_ID / default套接字下,因此出现了这个问题。
请注意,我第一次启动开发会话时,两个窗口都很好。
有什么想法吗?
答案 0 :(得分:1)
TL; DR:可能带有类似的
tmux new-window -t $TMUX_SESSION_NAME
tmux rename-window -t $TMUX_SESSION_NAME:1 'second'
更多信息(我的配置):
这就是我用来启动tmux会话的方法。该函数的参数将是您要创建的会话的名称。
如果这不能回答您的问题,请评论并编辑您的问题,以使我更清楚。
tmuxstart() {
tmux new-session -d -s $1 >/dev/null
tmux rename-window -t $1:0 'main'
tmux splitw -v -p 10 -t $1:0.0
tmux splitw -h -p 80 -t $1:0.1
#required; otherwise pane numbering is bs
tmux select-pane -t $1:0.0
tmux splitw -h -p 5 -t $1:0.0
tmux send-keys -t $1:0.2 'sudo htop' Enter
tmux send-keys -t $1:0.1 'tmux clock -t $1:0.1' Enter
tmux select-pane -t $1:0.0
tmux new-window -t $1
tmux rename-window -t $1:1 'second'
tmux splitw -v -p 10 -t $1:1.0
tmux splitw -h -p 80 -t $1:1.1
tmux select-pane -t $1:1.0
tmux splitw -h -p 5 -t $1:1.0
tmux clock -t $1:1.1
tmux new-window -t $1
tmux rename-window -t $1:2 'scratch'
tmux splitw -v -p 10 -t $1:2.0
tmux select-pane -t $1:2.0
tmux splitw -h -p 5 -t $1:2.0
tmux clock -t $1:2.1
tmux select-window -t $1:0.0
tmux a -t $1
}