Как увеличить размер буфера прокрутки в tmux?

328

Как увеличить размер буфера прокрутки в tmux?

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

Используя tmux1.8, Ubuntu 12.04 LTS, либо konsoleили gnome-terminal.

moon.musick
источник

Ответы:

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) = 256K250 тысяч строк.
PHS
8
Я закончил тем, что остановился наset-option -g history-limit 50000
phs
2
мой, кажется, только подняться примерно до 4700 .. хотя новая панель. tmux 1.9
wuxmedia
4
Для тех из вас, кто не знает, где найти файл .tmux.conf, вы можете просто создать новый файл в ~ / .tmux.conf, а затем добавить эту единственную строку в файл set-option -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.

f4d0
источник
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, который делает это немного более полезным. 1-й параметр, передаваемый в сценарий, задает ограничение истории для нового сеанса, а 2-й параметр задает имя его сеанса:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
devhen
источник