Załóżmy, że łączysz się ze zdalnym serwerem przez ssh za pomocą Terminal.app. Kiedy „tmux attach” z monitorem o większej rozdzielczości od mniejszego, który wcześniej zacząłeś tmux, rysuje kropki wokół konsoli. Nie pasuje do nowego rozmiaru okna. Czy jest jakiś sposób na przerysowanie i wyczyszczenie okna? CTRL+ Llub CTRL- B+ Rnie pomaga. Nie mogłem znaleźć właściwego polecenia dla człowieka.
% tmux -V
tmux 1.5
Odpowiedzi:
tmux ogranicza wymiary okna do najmniejszego z każdego wymiaru we wszystkich sesjach, do których okno jest przyłączone. Gdyby tego nie zrobił, nie byłoby rozsądnego sposobu wyświetlenia całego obszaru okna dla wszystkich dołączonych klientów.
Najłatwiej jest odłączyć innych klientów od sesji po dołączeniu:
Alternatywnie możesz przenieść innych klientów do innej sesji przed dołączeniem do sesji:
Ekran ponownie się zmniejszy, jeśli mniejszy klient przełączy się na sesję.
Istnieje również odmiana, w której „przejmujesz” okno (łączysz okno w nową sesję, ustawiasz
aggressive-resize
i przełączasz dowolne inne sesje, które mają aktywne okno na inne okno), ale ogólnie trudniej jest napisać skrypt case (i inaczej niż „exit”, ponieważ chcesz rozłączyć okno lub zabić sesję zamiast po prostu odłączyć się od sesji).źródło
$(tmux display-message -p '#S')
, patrz: superuser.com/questions/410017/... .Ctrl-b + D
dla łatwości użycia (i zapamiętywania).set-option... set-remain-on-exit on
. Zobacz tmux # 787 . Teraz można użyć:tmux set-hook -t "$tmp" window-linked 'set remain-on-exit on
.new-window
ostatniego argumentu czegoś podobnego,'echo "Use Prefix + L (i.e. ^B L) to return to session.'; while(true); do read; done"
inaczej nie zobaczysz komunikatu. (W niektórych okolicznościach zobaczysz to, jeśli przewiniesz w górę lub terminal będzie wyższy.) Jeśli go użyjesz, prawdopodobnie lepiej Ci będzie bez mojego komentarza „(1)” lub czegokolwiek innegoremain-on-exit
.Zawsze możesz nacisnąć CTRL- B+ SHIFT-, Daby wybrać klienta, którego chcesz odłączyć od sesji.
tmux wyświetli listę wszystkich sesji z ich bieżącym wymiarem. Następnie po prostu odłączasz się od wszystkich mniejszych sesji.
źródło
CTRL-B
jeśli to twój prefiks. Mój był,CTRL-A
odkąd przełączyłem się z ekranu.tmux list-sessions
który pokazuje nazwę sesji, rozmiar i informacje o grupie, a następnietmux kill-session -t <session_name>
zabić sesje tej samej grupy.Prostsze rozwiązanie w najnowszych wersjach tmux (testowane w wersji 1.9) możesz teraz:
-a
jest dla wszystkich innych klientów w tej sesji oprócz bieżącegoMożesz to zrobić w swoim aliasie. [Bash | zsh] rc
Przepływ pracy: Możesz połączyć się z sesją normalnie, a jeśli przeszkadza ci inna sesja, która zmusiła rozmiar twojego okna Tmux, możesz po prostu zadzwonić
takeover
.źródło
:detach -a
tmux detach -a
w linii poleceń powłoki w Tmux.Pozostałe odpowiedzi nie pomogły mi, ponieważ miałem tylko klienta podłączonego (poprzednia, która rozpoczęła sesję, była już odłączona).
Aby to naprawić, postępowałem zgodnie z odpowiedzią tutaj (nie używałem xterm).
Który po prostu powiedział:
resize
komendę Linuxźródło
Właśnie natrafiłem na ten problem i natknąłem się na inną sytuację. Chociaż to chyba jednorożec, pomyślałem, że go ułożę.
Miałem jedną sesję, która była mniejsza, i zauważyłem, że rozmiary czcionek były różne: mniejsza sesja miała mniejsze czcionki. Najwyraźniej z jakiegoś powodu zmieniłem rozmiary czcionek w oknie.
Tak więc w OS X właśnie zrobiłem
Cmd-+
sesję o mniejszym rozmiarze i wróciła ona na swoje miejsce.źródło
cmd-+
lub-
go naprawia.zabij drugiego.
źródło
Jest to nadal najwyższy post podczas wyszukiwania, ale nie jest już ważny. Najlepsza odpowiedź jest tutaj , ale TLDR jest
<c-b>:resize-window -A
źródło
Używam Ctrl- b+, qco powoduje, że jest to numer flash dla każdego panelu, przerysowując je po drodze.
źródło