Czy zmusić ekran GNU do ponownego włączenia do aktualnej szerokości terminala przy ponownym podłączeniu?

32

Chciałbym zmusić ekran GNU do ponownego włączenia do istniejącej szerokości terminala, kiedy ponownie przyłączam sesję. Wydaje mi się, że działało to poprawnie, zanim zaktualizowałem maszynę do CentOS 6, ale nie mogę wymyślić, jak ją przywrócić. ( TERM=xterm)

Ilekroć ponownie przyłączam sesję, bez względu na stan, w którym ją odłączałem, uruchamia się w 80 kolumnach, zmieniając rozmiar mojego terminala (w tym przypadku PuTTY) wraz z nim.

Uruchamiam i ponownie podłączam za pomocą:

screen -aA -R <session>

Mój .screenrc zawiera tylko następujące i kilka nieistotnych powiązań klawiszy:

term xterm

defscrollback 10000

# status line at the bottom
hardstatus on
hardstatus alwayslastline
hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l"
caption splitonly "%{.yK}%3n t"
caption string "%{.c0}%3n %t"

vbell off

# Fix fullscreen programs
altscreen on
Michał
źródło
Możesz mieć więcej szczęścia tmux, mogę dynamicznie zmieniać rozmiar mojego okna terminala, a tmux w nim nastąpi.
numer 5

Odpowiedzi:

38

po ponownym podłączeniu ctrl-a Furuchamia się polecenie „dopasuj”, aby zmienić rozmiar bieżącego okna. jeśli ponownie przyłączysz za pomocą tej -Aopcji, podczas ponownego łączenia powinna zmienić rozmiar wszystkich okien. Czy podczas dołączania do sesji są jeszcze inni? Na przykład, czy musisz użyć opcji -x, aby ponownie podłączyć zamiast opcji -r? możesz odłączyć innych, gdy ponownie połączysz się z opcją „screen -D -r” zamiast „screen -x”, i spodziewam się, że to automatycznie zamieni okna.

gulasz
źródło
Rozpoczynam z -a -Ai nikt inny nie jest przywiązany.
Michael
1
Jest to nadal problem z ekranem za pośrednictwem Ubuntu 14.04. Fit nie działa. Odłączanie i ponowne podłączanie powoduje. Ekran 4.2.1 jest dostępny z zaufanych backportów . Informacje na temat włączania i używania pakietów z repozytorium backportów można znaleźć w dokumentacji backportów użytkownika .
Greg Bell
1
Nawet po zrobieniu tego musiałem zmienić rozmiar okna terminala, aby wysłać dowolny sygnał screenpotrzebny do dokonania zmiany rozmiaru.
krs013,
Te rozwiązania nie działały dla mnie, być może dlatego, że używam innego terminala (iTerm2 na Macu). Dopasowanie nie działało, więc odłączyłem się i ponownie przyłączyłem, screen -D -ra nawet próbowałem zmienić rozmiar okna, ale pozostało bez zmian. W Vimie widzę, że columnsustawiono to na 204.
haridsv
screen -D -r działał dla mnie po wypróbowaniu wszystkich innych opcji, jak powiedziałeś Gulasz - mój ekran wciąż wyświetlał się jako podłączony, gdy uruchomiłem screen -ls
Hayden Crocker
8

Pamiętaj, że ta odpowiedź dotyczy tylko PuTTY. Ja też jestem zmuszony używać systemu operacyjnego, którego wolałbym nie używać, a PuTTY jest jedyną realną opcją ze względu na inne ograniczenia w systemie. Miałem ten sam problem, rozmiar ekranu zmieniał się po zainicjowaniu lub połączeniu z istniejącą sesją ekranu. Próbowałem tutaj odpowiedzi bezskutecznie (Windows 10 z PuTTY 0.67 zainstalowanym przez MSI). Te odpowiedzi mogły działać ze standardowym terminalem UN * X, ale nie z PuTTY, to inna bestia.

Poszedłem kopać opcje i oto w polu „Terminal -> Funkcje” pojawiła się opcja „Wyłącz zmianę rozmiaru terminalu sterowanego zdalnie”. Zaznacz pole, zastosuj ustawienie i spróbuj ponownie ekran. Myślę, że problem zostanie rozwiązany.

db_
źródło
KiTTY jest znacznie lepszym zamiennikiem PuTTY na tym systemie operacyjnym, z którego musisz korzystać ...
Anubioz
5

Spróbuj dodać to (z / etc / screenrc) do ~ / .screenrc:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

https://superuser.com/a/217281/6593

Antti Rytsölä Circles Consult
źródło
1
W MPutty rozwiązuje to definitywnie sesję szpachlowania, która nie wypełnia całej strony, ale otwiera się zbyt mała
Thomas8