Kiedy więc otwieram nowy terminal (używam terminatora w Arch Linux), skonfigurowałem go tak, aby albo otwierał nową tmux
sesję, jeśli nie istnieje, albo dołączał do istniejącej. Kiedy piszę exit
w wierszu polecenia, kończy sesję tmux. Muszę wpisać exit
ponownie, aby zamknąć terminal. Chcę, żeby exit
po wpisaniu raz zamknął terminal, ale przestał tmux
działać, więc następnym razem, gdy otworzę terminal, połączy się on z poprzednią tmux
sesją. 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 exit
tym, że tmux detach
powinien zostać wywołany w terminalu zawierającym sesję tmux, a nie sama sesja tmux.
exit
nie jest tmux
rozkazem; to polecenie powłoki. tmux
koń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 tmux
polecenia lub powiązania klawiszy.
exit
to nie jest polecenie tmux. Chcę się odłączyć od sesji i wyjść z terminala (nie sesji), ale chcę exit
to zrobić w sesji Tmux. Myślę, że powinno to być możliwe z odrobiną bash-fu.
exit
aby nie wychodzić z powłoki. W każdym razie, jak długo trzeba tmux
będzie rzeczywista komenda, która biegnie terminali (w przeciwieństwie do zaczynając tmux
jako 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.