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.
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.
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).
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)
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
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 demtmux
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 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.