Як збільшити розмір буфера прокрутки в tmux?


328

Як збільшити розмір буфера прокрутки tmux?

Якщо я перейшов у режим копіювання, кількість доступних рядків прокрутки (видно у верхньому правому куті) завжди нижче 2000 р. Я намагався знайти список усіх команд tmux, але нічого не можу знайти про розмір прокрутки. Я бачу, що screenкоманда для встановлення цього параметра не працює tmux.

Використовуючи tmux1.8, Ubuntu 12.04 LTS, konsoleабо gnome-terminal.

Відповіді:


428

Ліміт історії - це атрибут панелі, який фіксується під час створення панелі і не може бути змінений для існуючих панелей . Значення береться з параметра history-limitсеансу (значення за замовчуванням - 2000).

Щоб створити область з іншим значенням, вам потрібно буде встановити відповідний history-limitваріант перед створенням панелі.

Щоб встановити інший за замовчуванням, ви можете помістити у .tmux.confфайл такий рядок, як наступний :

set-option -g history-limit 3000

Примітка. Будьте уважні, встановлюючи дуже велике значення за замовчуванням, воно може легко споживати багато оперативної пам’яті, якщо ви створите багато панелей.

Для нової панелі (або початкової панелі в новому вікні) в існуючому сеансі ви можете встановити цей сеанс history-limit. Ви можете використовувати таку команду (з оболонки):

tmux set-option history-limit 5000 \; new-window

Для (початкової області початкового вікна в) нового сеансу вам потрібно буде встановити "глобальний" history-limitперед створенням сеансу:

tmux set-option -g history-limit 5000 \; new-session

Примітка: Якщо ви не встановите повторно history-limitзначення, нове значення також буде використовуватися для інших панелей / вікон / сесій, створених у майбутньому; в даний час немає прямого способу створити єдину нову панель / вікно / сеанс із власним конкретним лімітом без (принаймні тимчасово) зміни history-limit(хоча show-option(особливо в 1.7 і пізніших версіях) може допомогти з отриманням поточного значення, щоб потім відновити його пізніше ).


26
Якщо "рядок" насправді є лише символами всередині нього, то можна вважати, що 128 байт - це розумний розмір рядка в пам'яті. Якщо я готовий взяти на себе 32 Мб для прокрутки назад для однієї панелі (що мені підходить, я не використовую багато панелей), тоді я можу збільшити ліміт історії до приблизно 2 ** (25 - 7) = 256Kабо 250 тисяч рядків.
пн

8
Я осіла наset-option -g history-limit 50000
рН

2
Моя здається, що вона піднімається лише до 4700 .. хоча нова панель. tmux 1.9
wuxmedia

4
Для тих із вас, хто не знає, де знайти файл .tmux.conf, ви можете просто створити новий файл за адресою ~ / .tmux.conf, а потім додати цей єдиний рядок до набору параметрів файлу -g history-limit 50000
C.Lee

1
Невеликий хист я наткнувся. Усі сеанси tmux повинні бути закриті, щоб ця зміна набула чинності. Виходячи з екрана GNU, я припускав, що кожен новий сеанс екрана буде джерелом ~ / .tmux.conf, але це не так. Тільки тоді, коли всі сеанси tmux закриті та відкриті нові, зміна на ~ / .tmux.conf має ефект.
rudolph9

24

Відкрийте файл конфігурації tmux за допомогою наступної команди:

vim ~/.tmux.conf

У файл конфігурації додайте наступний рядок:

set -g history-limit 5000

Вийдіть із системи та увійдіть знову, запустіть нове вікно tmux, і ваш ліміт - 5000.


3
Виходити з системи та входити не потрібно. Вам потрібно повністю або повністю закрити сервер tmux, або переконайтесь, що ви отримуєте джерело ~/.tmux.confв кожному сеансі (& потім запускати нові вікна на цих сесіях та закривати будь-які старі вікна).
henrebotha

3

Це ґрунтується на ntc2 та відповіді Кріса Джонсена. Я використовую це всякий раз, коли хочу створити новий сеанс із встановленим лімітом історії. Я хотів, щоб створити сеанси з обмеженою прокруткою, не змінюючи назавжди ліміт історії для майбутніх сесій.

tmux set-option -g history-limit 100 \; new-session -s mysessionname \; set-option -g history-limit 2000

Це працює незалежно від того, існують чи не існують сеанси. Після встановлення ліміту історії для нового сеансу він поверне його до типового значення, який для мене - 2000.

Я створив виконуваний скрипт bash, який робить це трохи кориснішим. Перший параметр, переданий сценарію, встановлює обмеження історії для нового сеансу, а другий параметр встановлює його ім'я сеансу:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.