没有-d
,new-session
将自动附加到新会话(您可能不希望嵌套会话*,因此警告)。您可能想要做的是创建一个新的“分离”会话,然后将当前客户端切换到该新会话。我认为没有new-session
办法处理这个用例,但是使用一些shell脚本很容易:
tmux-new() {
if [[ -n $TMUX ]]; then
tmux switch-client -t "$(TMUX= tmux -S "${TMUX%,*,*}" new-session -dP "$@")"
else
tmux new-session "$@"
fi
}
# example usage:
tmux-new -s new
如果没有TMUX,那就跑吧tmux new …
。除此以外,
- 在用于指向当前服务器时,取消设置TMUX以避免错误†
-S
- 添加
-d
以创建分离的会话,和
- 添加
-P
以打印出新会话的名称(这需要tmux 1.8或更高版本)。
然后给出输出(新会话的名称)switch-client
。
如果你没有TMUX 1.8,你可能要返工了一点(例如使函数采取强制性参数名称的新会话,这样就可以把它传递给双方new-session
和switch-client
)。
*你会有两个状态栏; 向内部会话输入tmux命令很复杂; 如果你切换内部客户端来查看外部会话(想想:镜子大厅),它可能会做一些奇怪的事情。
†使用时可能会禁止警告-d
......