Dołącz do różnych okien w sesji

117

Mam dość prostą sesję tmux z dwoma otwartymi oknami; jeden do lokalnego hakowania, a drugi do pracy.

Chciałbym po prostu połączyć się z oknem hakowania, pozostawiając okno robocze otwarte w innym terminalu. Jednak gdy tylko połączę się z tmux, wszystkie polecenia są wysyłane do obu okien, więc jeśli przejdę do innego okna, to samo dzieje się w drugim terminalu i odwrotnie.

Czy istnieje sposób, aby po prostu połączyć się z każdym oknem osobno?

Naftuli Kay
źródło

Odpowiedzi:

153

Powodem, dla którego obaj klienci jednocześnie przełączają okna, jest to, że obaj są połączeni z tą samą sesją („bieżące okno” jest atrybutem sesji, a nie klientem). Możesz połączyć jedno lub więcej okien w wiele różnych sesji. Ponieważ każda sesja ma własne „bieżące okno”, możesz następnie przełączać okna niezależnie w każdej sesji.

Najłatwiejszym sposobem korzystania z tej funkcji jest użycie funkcji „zgrupowanych sesji” new-sessionpolecenia:

$ tmux new-session -t 'original session name or number'

Aby zobaczyć aktualnie dostępne sesje:

$ tmux list-sessions

Każda sesja w grupie automatycznie współdzieli ten sam zestaw okien: otwieranie / łączenie (lub zamykanie / odłączanie) okno w jednej sesji grupy automatycznie powoduje, że to samo okno jest łączone (lub odłączane) we wszystkich pozostałych sesjach Grupa.

Kiedy zakończysz swoją „dodatkową” sesję, możesz ją zabić kill-session. Same okna nie zostaną zabite, chyba że sesja była jedyną, z którą były połączone. Alternatywnie możesz rozłączyć się z „dodatkową” sesją jak zwykle (Prefiks dlub detach-client); jeśli utrzymasz swoją „dodatkową” sesję w pobliżu (po prostu odłączając się od niej), możesz chcieć nadać jej opisową nazwę (Prefiks $lub rename-session), aby łatwo ją zidentyfikować i połączyć z nią później (możesz też chcieć podać „oryginalna” sesja też nazwa).


Jeśli nie chcesz automatycznie udostępniać dynamicznego zestawu okien, możesz użyć link-window(i unlink-window), aby wprowadzić poszczególne okna do własnej sesji „osobistej”; zapewnia to nieautomatyczny i niższy poziom dostępu do tej samej podstawowej funkcjonalności, na której oparte są „zgrupowane sesje” (okna połączone w wiele sesji).

Chris Johnsen
źródło
12
Gread odpowiedź. Czy wiesz, jak uniemożliwić synchronizację rozmiarów 2 otwartych sesji? Jeśli tworzę nową sesję, a okno jest mniejsze, wiele nieruchomości ekranowych w oryginalnej jest zmarnowanych.
defhlt
32
Znalazłem odpowiedź na moje pytanie:setw -g aggressive-resize on
defhlt
1
Jest to obsługiwane jako tryb „nieuczciwy” w wemux .
niebieskawy