Принудительно переустановить экран GNU до текущей ширины терминала?


32

Я хотел бы заставить экран GNU перекомпоновываться до существующей ширины терминала при повторном подключении сеанса. Мне кажется, это работало должным образом до того, как я обновил машину до CentOS 6, но я не могу понять, как ее восстановить. ( TERM=xterm)

Всякий раз, когда я присоединяю сеанс, независимо от состояния, когда я отсоединял его, он запускается в 80 столбцах, изменяя размеры моего терминала (в данном случае PuTTY) вместе с ним.

Я запускаю и подключаю с:

screen -aA -R <session>

Мой .screenrc содержит только следующее и несколько не относящихся к делу привязок клавиш:

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

Возможно, вам повезет больше tmux, я могу динамически изменить размер моего окна терминала, и tmux внутри будет следовать.
№5

Ответы:


38

после повторного присоединения a ctrl-a Fзапускается команда «fit» для изменения размера текущего окна. если вы подключите его с помощью этой -Aопции, он должен изменить размер всех окон при подключении. Есть ли другие, все еще прикрепленные к экранной сессии, когда вы подключаетесь? Например, вам нужно использовать -x для повторного присоединения вместо -r? Вы можете отсоединить других, когда вы снова подключите с помощью «screen -D -r» вместо «screen -x», и я ожидаю, что это автоматически обновит окна.


Я запускаю с -a -A, и никто не привязан.
Майкл

1
Это все еще проблема с экраном через Ubuntu 14.04. Fit не работает. Отключение и повторное подключение делает. Экран 4.2.1 доступен из надежных бэкпортов . Обратитесь к документации пользователя backports для получения информации о включении и использовании пакетов из репозитория backports.
Грег Белл

1
Даже после этого мне пришлось изменить размер окна терминала, чтобы послать любой сигнал, screenнеобходимый для фактического изменения размера.
krs013

Эти работы не работали для меня, возможно, потому что я использую другой терминал (iTerm2 на Mac). Подгонка не сработала, поэтому я отсоединился и снова прикрепил, используя screen -D -rи даже попытался изменить размер окна, но оно осталось прежним. Когда я в Vim, я вижу, что columnsбыло установлено на 204.
haridsv

screen -D -r сработал для меня после того, как вы попробовали все остальные опции, как вы сказали Stew - мой экран все еще отображался как прикрепленный, когда я запускал screen -ls
Хейден Крокер

8

Обратите внимание, что этот ответ относится только к PuTTY. Я также вынужден использовать операционную систему, которую я бы предпочел не использовать, и PuTTY - единственный реальный вариант из-за других ограничений в системе. У меня возникла та же проблема, мой экран изменял размер при запуске или подключении к существующему сеансу экрана. Я попробовал ответы здесь безрезультатно (Windows 10 с PuTTY 0.67, установленным через MSI). Эти ответы могли бы работать со стандартным терминалом UN * X, но не с PuTTY, это другое дело.

Я покопался в опциях, и вот, в разделе «Терминал -> Функции» есть опция с надписью «Отключить изменение размера терминала с дистанционным управлением». Установите флажок, примените настройку и попробуйте снова экран. Я думаю, вы найдете, что проблема решена.


KiTTY - гораздо лучшая замена PuTTY на той ОС, которую вы вынуждены использовать ...
Anubioz

5

Попробуйте добавить это (из / etc / screenrc) в ~ / .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


1
В MPutty это определенно решает сессию замазки, которая не заполняет всю страницу, а открывается слишком маленьким
Thomas8
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.