Wie kann man die Größe des Scrollback-Puffers in tmux erhöhen?


328

Wie erhöhe ich die Größe des Scrollback-Puffers tmux?

Wenn ich in den Kopiermodus gehe, liegt die Anzahl der verfügbaren Bildlaufzeilen (in der oberen rechten Ecke sichtbar) immer unter 2000. Ich habe versucht, eine Liste aller tmux-Befehle zu finden, kann jedoch nichts über die Bildlaufgröße finden. Nach allem, was ich sehe , funktioniert der screenBefehl zum Einstellen dieser Option nicht tmux.

Mit tmux1.8 Ubuntu 12.04 LTS entweder konsoleoder gnome-terminal.

Antworten:


428

Das Verlaufslimit ist ein Fensterattribut, das zum Zeitpunkt der Fenstererstellung festgelegt wurde und für vorhandene Fenster nicht geändert werden kann . Der Wert wird aus der history-limitSitzungsoption übernommen (der Standardwert ist 2000).

Um ein Fenster mit einem anderen Wert zu erstellen, müssen Sie die entsprechende history-limitOption festlegen, bevor Sie das Fenster erstellen.

Um einen anderen Standard festzulegen, können Sie eine Zeile wie die folgende in Ihre .tmux.confDatei einfügen:

set-option -g history-limit 3000

Hinweis: Achten Sie darauf, einen sehr großen Standardwert festzulegen. Wenn Sie viele Fenster erstellen, kann dies leicht viel RAM verbrauchen.

Für einen neuen Bereich (oder den ersten Bereich in einem neuen Fenster) in einer vorhandenen Sitzung können Sie diese Sitzung festlegen history-limit. Sie können einen Befehl wie diesen (aus einer Shell) verwenden:

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

Für (den ersten Bereich des Anfangsfensters in) einer neuen Sitzung müssen Sie history-limitvor dem Erstellen der Sitzung die "globale" festlegen :

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

Hinweis: Wenn Sie den history-limitWert nicht zurücksetzen, wird der neue Wert auch für andere Fenster / Fenster / Sitzungen verwendet, die in Zukunft erstellt werden. Derzeit gibt es keine direkte Möglichkeit, ein einzelnes neues Fenster / Fenster / eine neue Sitzung mit einem eigenen spezifischen Limit zu erstellen, ohne (zumindest vorübergehend) Änderungen vorzunehmen history-limit(obwohl dies show-option(insbesondere in Version 1.7 und höher) beim Abrufen des aktuellen Werts hilfreich sein kann, damit Sie ihn später wiederherstellen können ).


26
Wenn eine "Zeile" wirklich nur die darin enthaltenen Zeichen sind, können wir davon ausgehen, dass 128 Byte eine angemessene Zeilengröße im Speicher sind. Wenn ich bereit bin, 32 MB für das Zurückblättern für ein einzelnes Fenster bereitzustellen (was zu mir passt, ich verwende nicht viele Fenster), könnte ich mein Verlaufslimit auf ungefähr 2 ** (25 - 7) = 256K250.000 Zeilen erhöhen .
Phs

8
Ich landete er sich aufset-option -g history-limit 50000
phs

2
meins scheint nur bis ungefähr 4700 zu gehen .. obwohl eine neue Scheibe. tmux 1.9
wuxmedia

4
Für diejenigen unter Ihnen, die nicht wissen, wo sich die Datei .tmux.conf befindet, können Sie einfach eine neue Datei unter ~ / .tmux.conf erstellen und diese einzelne Zeile in die Dateisatzoption -g history-limit 50000 einfügen
C. Lee

1
Ein kleines Problem, dem ich begegnet bin. Alle tmux-Sitzungen müssen geschlossen sein, damit diese Änderung wirksam wird. Als ich vom GNU-Bildschirm kam, ging ich davon aus, dass jede neue Bildschirmsitzung die ~ / .tmux.conf als Quelle verwenden würde, aber das ist nicht der Fall. Nur wenn alle tmux-Sitzungen geschlossen und eine neue geöffnet ist, wirkt sich die Änderung der Datei ~ / .tmux.conf aus.
Rudolph9

24

Öffnen Sie die tmux-Konfigurationsdatei mit dem folgenden Befehl:

vim ~/.tmux.conf

Fügen Sie in der Konfigurationsdatei die folgende Zeile hinzu:

set -g history-limit 5000

Melden Sie sich ab und wieder an, starten Sie ein neues tmux-Fenster und Ihr Limit liegt jetzt bei 5000.


3
Es ist nicht erforderlich, sich abzumelden und anzumelden. Sie müssen lediglich entweder den tmux-Server vollständig beenden oder sicherstellen, dass Sie ~/.tmux.confin jeder Sitzung eine Quelle angeben (und dann in diesen Sitzungen neue Fenster starten und alte Fenster schließen).
Henrebotha

3

Dies baut auf der Antwort von ntc2 und Chris Johnsen auf. Ich verwende dies immer dann, wenn ich eine neue Sitzung mit einem benutzerdefinierten Verlaufslimit erstellen möchte. Ich wollte eine Möglichkeit zum Erstellen von Sitzungen mit eingeschränktem Scrollback, ohne mein Verlaufslimit für zukünftige Sitzungen dauerhaft zu ändern.

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

Dies funktioniert unabhängig davon, ob Sitzungen vorhanden sind oder nicht. Nachdem das Verlaufslimit für die neue Sitzung festgelegt wurde, wird es auf den Standardwert zurückgesetzt, der für mich 2000 ist.

Ich habe ein ausführbares Bash-Skript erstellt, das dies etwas nützlicher macht. Der erste an das Skript übergebene Parameter legt das Verlaufslimit für die neue Sitzung fest, und der zweite Parameter legt den Sitzungsnamen fest:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.