如何从命令行创建包含窗口的多个tmux会话

时间:2019-02-11 10:04:42

标签: tmux

我正在尝试使用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套接字下,因此出现了这个问题。

请注意,我第一次启动开发会话时,两个窗口都很好。

有什么想法吗?

1 个答案:

答案 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
}