如何从命令行创建包含 windows 的多个 tmux 会话
How can I create multiple tmux sessions containing windows from command line
我正在尝试使用 tmux 为开发会话编写模板脚本。所以我只需要 运行 这个脚本来打开一个新的开发环境。每个会话将有多个 windows - 比如说两个。首先 window(Window1) 可以在创建分离会话时创建为:
tmux new-session -s $TMUX_SESSION_NAME -d -n Window1
(此处 TMUX_SESSION_NAME 是传递给脚本以命名会话的参数)。
但是,如何在同一会话下创建另一个 window?
请注意,我可以按如下方式创建它,但在创建另一个会话时会搞砸。虽然 tmux ls 显示每个会话都有 2 windows,但第二个会话包含第一个会话的所有环境设置(两者都用于完全不同的项目)
tmux new-window-n Window2
tmux attach -t $TMUX_SESSION_NAME
我怀疑 both/all 会话在同一个 /tmp/tmux-SOME_ID/default 套接字下进行,因此出现了这个问题。
请注意,我第一次开始开发会话时,两者都很好 windows。
有什么想法吗?
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 >/dev/null
tmux rename-window -t :0 'main'
tmux splitw -v -p 10 -t :0.0
tmux splitw -h -p 80 -t :0.1
#required; otherwise pane numbering is bs
tmux select-pane -t :0.0
tmux splitw -h -p 5 -t :0.0
tmux send-keys -t :0.2 'sudo htop' Enter
tmux send-keys -t :0.1 'tmux clock -t :0.1' Enter
tmux select-pane -t :0.0
tmux new-window -t
tmux rename-window -t :1 'second'
tmux splitw -v -p 10 -t :1.0
tmux splitw -h -p 80 -t :1.1
tmux select-pane -t :1.0
tmux splitw -h -p 5 -t :1.0
tmux clock -t :1.1
tmux new-window -t
tmux rename-window -t :2 'scratch'
tmux splitw -v -p 10 -t :2.0
tmux select-pane -t :2.0
tmux splitw -h -p 5 -t :2.0
tmux clock -t :2.1
tmux select-window -t :0.0
tmux a -t
}
我正在尝试使用 tmux 为开发会话编写模板脚本。所以我只需要 运行 这个脚本来打开一个新的开发环境。每个会话将有多个 windows - 比如说两个。首先 window(Window1) 可以在创建分离会话时创建为:
tmux new-session -s $TMUX_SESSION_NAME -d -n Window1 (此处 TMUX_SESSION_NAME 是传递给脚本以命名会话的参数)。
但是,如何在同一会话下创建另一个 window?
请注意,我可以按如下方式创建它,但在创建另一个会话时会搞砸。虽然 tmux ls 显示每个会话都有 2 windows,但第二个会话包含第一个会话的所有环境设置(两者都用于完全不同的项目)
tmux new-window-n Window2 tmux attach -t $TMUX_SESSION_NAME
我怀疑 both/all 会话在同一个 /tmp/tmux-SOME_ID/default 套接字下进行,因此出现了这个问题。
请注意,我第一次开始开发会话时,两者都很好 windows。
有什么想法吗?
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 >/dev/null
tmux rename-window -t :0 'main'
tmux splitw -v -p 10 -t :0.0
tmux splitw -h -p 80 -t :0.1
#required; otherwise pane numbering is bs
tmux select-pane -t :0.0
tmux splitw -h -p 5 -t :0.0
tmux send-keys -t :0.2 'sudo htop' Enter
tmux send-keys -t :0.1 'tmux clock -t :0.1' Enter
tmux select-pane -t :0.0
tmux new-window -t
tmux rename-window -t :1 'second'
tmux splitw -v -p 10 -t :1.0
tmux splitw -h -p 80 -t :1.1
tmux select-pane -t :1.0
tmux splitw -h -p 5 -t :1.0
tmux clock -t :1.1
tmux new-window -t
tmux rename-window -t :2 'scratch'
tmux splitw -v -p 10 -t :2.0
tmux select-pane -t :2.0
tmux splitw -h -p 5 -t :2.0
tmux clock -t :2.1
tmux select-window -t :0.0
tmux a -t
}