Kiedy więc otwieram nowy terminal (używam terminatora w Arch Linux), skonfigurowałem go tak, aby albo otwierał nową tmuxsesję, jeśli nie istnieje, albo dołączał do istniejącej. Kiedy piszę exitw wierszu polecenia, kończy sesję tmux. Muszę wpisać exitponownie, aby zamknąć terminal. Chcę, żeby exitpo wpisaniu raz zamknął terminal, ale przestał tmuxdziałać, więc następnym razem, gdy otworzę terminal, połączy się on z poprzednią tmuxsesją. Zasadniczo jest to odpowiednik kliknięcia przycisku wyjścia w menedżerze okien, ale chcę tę funkcję podczas pisania exit.
EDYTOWAĆ:
To jest coś, co chcę:
alias exit='if [[ $TMUX = "" ]]; then exit; else tmux detach; exit; fi'
ale problem polega na exittym, że tmux detachpowinien zostać wywołany w terminalu zawierającym sesję tmux, a nie sama sesja tmux.
exitnie jest tmuxrozkazem; to polecenie powłoki. tmuxkończy działanie tylko wtedy, gdy zakończysz polecenie (zwykle powłokę) w ostatnim panelu ostatniego okna. Wygląda na to, że chcesz po prostu odłączyć się od bieżącej sesji, w takim przypadku powinieneś użyć odpowiedniego tmuxpolecenia lub powiązania klawiszy.
exitto nie jest polecenie tmux. Chcę się odłączyć od sesji i wyjść z terminala (nie sesji), ale chcę exitto zrobić w sesji Tmux. Myślę, że powinno to być możliwe z odrobiną bash-fu.
exitaby nie wychodzić z powłoki. W każdym razie, jak długo trzeba tmuxbędzie rzeczywista komenda, która biegnie terminali (w przeciwieństwie do zaczynając tmuxjako dziecko powłoki rozpoczętej przez terminal), odłączenie spowoduje ostatni program działa w powłoce, aby wyjść i, zakładając, że terminal jest skonfigurowany do tego, automatycznie zamknij okno.