tmuxセッションの最後の端末を終了すると、他の端末に切り替えることができますか?

tmuxセッションの最後の端末を終了すると、他の端末に切り替えることができますか?

tmux セッションの最後の端末を終了すると、自動的に tmux が閉じ、親端末に戻ります。閉じるのではなく、tmuxをすでに実行している他のセッションに切り替えることはできますか?

TRxxx、Eメール、スクラッチなど、私が作業しているすべてのタスクに対して新しい名前付きセッションを作成してタスクの1つを完了したら、各端末でシャットダウンを実行してすべての端末を閉じます。セッションの最後の端末でシャットダウンを実行すると、tmuxが親端末に戻りますが、再接続する必要がないように、開いている他のセッションの1つに切り替えることができますか?

この質問は「と似ています。ある tmux セッションを終了し、別の tmux セッションを選択します。「しかし、ウィンドウを閉じるのではなく、シャットダウンを使ってターミナルを素敵に閉じたいのです。

答え1

私はこれを私のものに追加しました~/.tmux.conf

set-option -g detach-on-destroy off

セッションの最後のシェルを削除すると、別のアクティブセッションに切り替えられます。すべてのセッションが終了したらtmux終了します。

答え2

私が得た最も近いのは、私が書いたtmux関数でした。私は通常Ctrl+をクリックしてシェルを終了するので、+をクリックするとセッションを終了して切り替えるようにDプログラムしました。tmux以下を入力してください。[PREFIX] CtrlD.tmux.conf

bind C-d run-shell "                                        \
    if [ #{session_windows} -eq 1 ] &&                      \
       [ #{window_panes}    -eq 1 ] &&                      \
       [ #{pane_current_command}  = 'bash' ]; then          \
        if [ \$(tmux list-sessions | wc -l) -ge 2 ]; then   \
            tmux switch-client -ln;                         \
        fi; tmux kill-session -t \"#S\";                    \
    else                                                    \
        tmux display-message \"Ignoring kill session...\";  \
    fi;                                                     \
    "

現在のセッションに他のコマンドを実行しないシェルのみがある場合は、[PREFIX] Ctrl+を押して現在のセッションを終了します。D可能であれば、別のセッションに切り替えます。私はbashシェルを使用しているので、それを使用しているシェルに変更する必要があるかもしれません。

ps:もし備えて、私は現在tmux 1.9aを使っています。

答え3

次の行を追加して.bashrcみてください。

if which tmux 2>&1 >/dev/null 
then
    # start a new session if not exist
    test -z ${TMUX} && tmux

    # when quitting tmux, try to attach to other session
    while test -z ${TMUX}; do
        tmux attach || break
    done
fi

関連情報