484 Stimmen

Wie vergrößere ich die Scrollback-Puffergröße in tmux?

Wie kann ich die Scrollback-Puffergröße in tmux erhöhen?

Wenn ich in den Kopiermodus wechsle, liegt die Anzahl der verfügbaren Scrollback-Zeilen immer unter 2000.

601voto

Chris Johnsen Punkte 199970

Die History-Grenze ist ein Attribut des Panes, das zur Zeit der Pane-Erstellung festgelegt wird und nicht für vorhandene Panes geändert werden kann. Der Wert wird aus der Sitzungsoption history-limit übernommen (der Standardwert beträgt 2000).

Um eine Pane mit einem anderen Wert zu erstellen, müssen Sie die entsprechende history-limit-Option vor der Erstellung der Pane festlegen.

Um ein anderes Standardwert festzulegen, können Sie eine Zeile wie folgt in Ihre .tmux.conf-Datei einfügen:

set-option -g history-limit 3000

Hinweis: Seien Sie vorsichtig beim Festlegen eines sehr großen Standardwerts, da dies leicht viel RAM verbrauchen kann, wenn Sie viele Panes erstellen.

Für eine neue Pane (oder die erste Pane in einem neuen Fenster) in einer vorhandenen Sitzung können Sie die history-limit dieser Sitzung festlegen. Sie könnten einen Befehl wie diesen verwenden (aus einer Shell):

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

Für (die erste Pane des ersten Fensters in) einer neuen Sitzung müssen Sie die "globale" history-limit vor der Erstellung der Sitzung festlegen:

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

Hinweis: Wenn Sie den Wert der history-limit nicht erneut festlegen, wird der neue Wert auch für andere Panes/Fenster/Sitzungen, die in Zukunft erstellt werden, verwendet; derzeit gibt es keinen direkten Weg, um eine einzelne neue Pane/Fenster/Sitzung mit einer eigenen spezifischen Grenze zu erstellen, ohne (zumindest vorübergehend) history-limit zu ändern (obwohl show-option (besonders in Version 1.7 und später) dabei helfen kann, den aktuellen Wert abzurufen, um ihn später wiederherzustellen).

58voto

f4d0 Punkte 1023

Öffnen Sie die tmux-Konfigurationsdatei mit folgendem 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 beträgt jetzt 5000.

9voto

Oded BD Punkte 2038

Dies wird es in einer Zeile beheben:

echo "set -g history-limit 5000" >> ~/.tmux.conf

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 dann diese einzelne Zeile in die Datei einfügen set-option -g history-limit 50000, wenn der obige Befehl einen Fehler wirft. (Kommentar von @C.Lee auf dieser Antwort)

7voto

devhen Punkte 71

Dies baut auf der Antwort von ntc2 und Chris Johnsen auf. Ich verwende dies immer dann, wenn ich eine neue Sitzung mit einem benutzerdefinierten History-Limit erstellen möchte. Ich wollte eine Möglichkeit, Sitzungen mit begrenztem Scrollback zu erstellen, ohne mein History-Limit 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 bereits Sitzungen vorhanden sind. Nachdem das History-Limit für die neue Sitzung festgelegt wurde, wird es auf den Standardwert zurückgesetzt, der für mich 2000 beträgt.

Ich habe ein ausführbares Bash-Skript erstellt, das dies etwas nützlicher macht. Der erste dem Skript übergebene Parameter legt das History-Limit 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

1voto

toraritte Punkte 5144

Da die Größe des Scroll-Back-Puffers (d.h. history-limit) nicht für vorhandene Paneele zurückgesetzt werden kann, ist der Workaround, der für mich bisher funktioniert hat, die Verwendung des Befehls pipe-pane (der ähnlich dem screen Befehl log ist).

Aus dieser Unix & Linux Antwort:

Sie können den pipe-pane Befehl nach dem tmux Präfix verwenden (mit dem Standardpräfix, wäre dies STRG+b:pipe-pane).

Beispiel 1

Das Beispiel, das hier gefunden wurde, überschreibt die Zieldatei (in diesem Fall myfile):

pipe-pane "cat >myfile"

Beispiel 2

Das Beispiel im tmux Handbuch bindet eine Tastenkombination zum Umschalten des Loggings und zum Anhängen an die angegebene Datei anstelle des Überschreibens:

Die Option -o öffnet nur eine neue Pipe, wenn keine vorherige Pipe existiert, was es ermöglicht, eine Pipe mit einer einzigen Taste umzuschalten, zum Beispiel:

bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X