Как увеличить буфер прокрутки в сеансе рабочего экрана?

237

Допустим, у меня запущен сеанс экрана, с которым я взаимодействую через putty. Я понял, что буфер прокрутки слишком мал и хотел бы увеличить его без запуская новый сеанс экрана.

Есть ли способ сделать это?

Zach
источник
На всякий случай, если кто-то захочет увеличить буфер прокрутки при запуске нового сеанса:screen -h <numlines>
Scz

Ответы:

180

Страница людей объясняет , что вы можете войти в режиме командной строки в запущенной сессии набрав Ctrl+ A, :, а затем выполнив scrollback <num>команду.

Фредерик Хамиди
источник
4
Вам придется сделать для каждого окна текущего экрана индивидуально.
Мэтью Уилкоксон
2
где <num>количество строк прокрутки
rakslice
Если вы обнаружите, что достигли максимального буфера по умолчанию, не можете показать больше истории, и установка с помощью scrollback <num>, это не поможет вам больше расширять буфер, вам нужно повторить последнюю команду, чтобы получить весь буфер истории.
Камил
362

Нажмите Ctrl-aзатем :и затем введите

scrollback 10000

например, получить 10000 строк буфера.

Вы также можете установить количество строк прокрутки по умолчанию, добавив

defscrollback 10000

на ваш ~/.screenrc файл.

Для прокрутки (если ваш терминал не позволяет вам по умолчанию), нажмите Ctrl-a ESCи затем прокрутите (с обычным Ctrl-fдля следующей страницы или Ctrl-aдля предыдущей страницы, или просто с помощью колесика мыши / двумя пальцами). Чтобы выйти из режима прокрутки, просто нажмите ESC.

Другой совет: Ctrl-a iпоказывает ваши текущие настройки буфера.

Ли Нетертон
источник
9
+1 для подсказки с defscrollback, который установлен в 1024 в Ubuntu 12.10 (который я должен использовать на работе).
Эрик
2
byobu-screenна Ubuntu 12.04, кажется, устанавливает defscrollback на 10000
хронологическая ложка
4
Я хотел бы отметить, что если ваш screenrc открывает для вас дополнительные условия, вам нужно поставить defscrollback перед открытием окон, иначе они просто получат значение по умолчанию 1024
majikman
это не работает на Mac. Я поставил startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc`, и он получает первую строку, но вторая кажется проигнорированной.
Бен
9

Минимальный объем буфера «по умолчанию» при запуске сеанса «screen» внутри сеанса «putty». В своей работе я часто использую экраны, поэтому могу сказать, что у вас не будет комбинации буфера 'screen' и буфера 'putty' в вашей сессии 'screen'.

Установка по умолчанию количества строк прокрутки, добавив defscrollback 10000 к~/.screenrc файл является правильным решением.

Кстати, я использую «defscrollback 200000» в моем ./screenrcфайле.

Oracle DBA 2000 bc
источник
4

Как уже упоминалось, у нас есть два пути!

 За экран (сеанс) интерактивная настройка

И это сделано в интерактивном режиме! И вступить в силу немедленно!

CTRL + Aа затем :А мы набираем scrollback 1000000И нажимаемENTER

Вы отсоединяетесь от экрана и возвращаетесь! Это будет всегда одинаково.

Вы открываете еще один новый экран! И значение снова сбрасывается на значение по умолчанию! Так что это не глобальная настройка!

 И постоянная настройка по умолчанию

Что делается путем добавления defscrollback 1000000к .screenrc(в домашних условиях)

defscrollback и нет scrollback (по умолчанию стоит def)

Что вам нужно знать, так это если файл не создан! Вы создаете это !

> cd ~ && vim .screenrc

И вы добавляете defscrollback 1000000 к этому!

Или в одной команде

> echo "defscrollback 1000000" >> .screenrc

(если еще не создан)

Вступление в силу

Когда вы добавляете значение по умолчанию для .screenrc! Уже запущенный экран при повторном присоединении не вступит в силу! .screenrcПерспективе при создании экрана! И это имеет смысл! Так же, как с обычным запуском консоли и оболочки!

И все новые созданные экраны будут иметь заданное значение!

Проверка эффективного размера буфера экрана

Чтобы проверить тип с CTRL + Aпоследующимi

И результат будет как

введите описание изображения здесь

Важно отметить, что размер буфера - это число после знака +
(на иллюстрации я установил его на 1 000 000)

Обратите внимание, что когда вы измените его в интерактивном режиме! Эффект мгновенный и принимает значение по умолчанию!

скроллинг

CTRL+ Aс последующим ESC(для входа в режим копирования).

Затем перейдите с Up, DownилиPgUp PgDown

И ESCснова выйти из этого режима.

(Дополнительная информация: скопировать хит, ENTERчтобы начать выбор! ЗатемENTER снова скопировать! Просто и круто)

Теперь буфер больше!

И это подводит итог для важных деталей!

Мохамед Аллал
источник
Приятно знать шаги, как прокручивать!
Skytree
Спасибо. выучил новый трюк для проверки размера экранного буфера, используя: CTRL + A, а затем i
alphaGeek
3

ВНИМАНИЕ: установка слишком высокого значения может привести к серьезному сбоям в работе вашей системы. Чем выше установленное значение, тем больше виртуальной памяти выделяется экранному процессу при запуске сеанса экрана. Я установил для ~ / .screenrc значение «defscrollback 123456789», и когда я запускал экран, вся моя система зависала на добрых 10 минут, прежде чем вернуться к тому моменту, когда я смог убить процесс экрана (который занимал 16,6 ГБ). VIRT mem к тому времени).

1GLENCo
источник
-3

Для потомков этот ответ неверен, как отметил Стивен Лу. Оставив оригинальный текст однако.

Оригинальный ответ:

Для тех, кто прибывает через веб-поиск (несколько лет спустя) ...

При использовании экрана ваш буфер прокрутки представляет собой комбинацию screen буфера обратной прокрутки, как отмечалось в двух предыдущих ответах, так и буфера обратной прокрутки.

Убедитесь, что вы увеличиваете ОБА буфера прокрутки замазки, а также буфера прокрутки экрана, иначе само ваше окно замазки не позволит вам прокрутить назад, чтобы просмотреть screenисторию прокрутки (которую можно преодолеть с помощью прокрутки на экране с помощью ctrl+a->ctrl+u)

Вы можете изменить предел прокрутки замазки в категории «Окно» в настройках. Выход и повторное открытие сеанса замазки на вашем экране не закроет ваш экран (при условии, что вы просто закроете окно замазки и не печатаете exit), как просил ОП.

Надеюсь, это поможет определить, почему увеличение буфера прокрутки экрана не решает чью-то проблему.

Брэд П.
источник
17
Это неточно. Экран держит свой собственный буфер. Когда вы прокручиваете экран вверх, используя режим копирования, экран передает вам собственную историю экрана через проклятия. Когда используется терминальный мультиплексор, такой как screen, буфер эмулятора собственного терминала не используется (на самом деле он может накапливать или не накапливать мусор в качестве побочного эффекта)
Стивен Лу,
хорошие моменты, и я считаю, что вы правы ... Интересно, мне следует удалить свой ответ?
Брэд П.
Я не уверен. Поскольку это также удалило бы мой комментарий, который людям, кажется, нравится.
Стивен Лу
3
Хаха, совершенно верно. Я думаю, что я отредактирую это, чтобы отметить, что это неправильно, но оставлю оригинальный текст
Брэд П.
2
Конечно, спасибо. Я предпочитаю оставлять только дополнительные изменения на таком сайте, чтобы люди могли сойти с него без смущения.
Стивен Лу