我打开的每个终端窗口都会自动附加到一个新的 tmux 会话。关闭此类 tmux 会话内的 shell 应分离 tmux 客户端,以便关闭终端窗口。这可以通过设置此选项来完成:
set -g detach-on-destroy on
Ctrl但是,当我从会话概述( + b、w、x、 )中终止当前会话时y,tmux 客户端也会分离。相反,我希望它保持附加状态,以便我可以从会话概述中选择另一个会话。
问题是,当会话退出时,我怎样才能使 tmux 分离,因为它正在运行的进程(即 shell)退出,但当会话从会话概述中终止时仍保持连接?
答案1
您可以通过关闭 detach-on-destroy 并将 detach-client 放入窗格退出挂钩中来实现此目的。
答案2
这是更易读的一点:
set -g remain-on-exit on
set -g pane-died 'if -F "#{&&:#{==:#{session_windows},1},#{==:#{window_panes},1}}" "killp; detach" "killp"'
set -g detach-on-destroy off