Ruft den Inhalt des TMux-Bildlaufpuffers ab

13

Gibt es in TMux eine Möglichkeit, programmgesteuert den Inhalt des Bildlaufpuffers über der aktuellen Befehlszeile abzurufen?

Ich versuche im Grunde, ein Bash-Skript zu schreiben, um nach oben zu iterieren, bis ich eine passende Zeichenfolge finde. Um es klar zu sagen, ich möchte nicht die Geschichte der getippten Befehle durchgehen. Ich möchte alles durchgehen, was auf der Konsole angezeigt wird.

Mahemoff
quelle

Antworten:

21

Mit tmux 1.5 (und höher) können Sie die -SOption capture-panezum Zugriff auf den Scrollback-Puffer mit negativen Zahlen versehen .

Beispiele:

  • Erfassen Sie (bis zu) 32768 Zeilen des Bildlaufpuffers zusammen mit dem aktuellen Text des Bereichs:

    tmux capture-pane -pS -32768
    
  • Erfassen Sie nur die zehntletzte Zeile, in der Sie einen Bildlauf durchgeführt haben:

    tmux capture-pane -pS -10 -E -10
    
  • Erfassen Sie (bis zu) 100 zuletzt gescrollte Zeilen:

    tmux capture-pane -pS -100 -E -1
    
  • Erfassen Sie elf Zeilen, die sich über die aktuelle obere Zeile des Fensters erstrecken (5 Zeilen mit Bildlauf und die oberen sechs Zeilen des Fensters):

    tmux capture-pane -pS -5 -E 5
    

Hinweis: Wie bei den meisten tmux- Befehlen können Sie -tein bestimmtes Fenster als Ziel festlegen , wenn das aktuelle Fenster nicht das ist, an dem Sie interessiert sind.


Die obigen Beispiele verwenden auch die -pOption to capture-pane, die nur ab tmux 1.8 verfügbar ist . Mit älteren Versionen können Sie das Problem umgehen, indem Sie Folgendes verwenden save-buffer:

tmux capture-pane -S -32768 \; save-buffer - \; delete-buffer
Chris Johnsen
quelle
Toll, dies gegen eine beliebige Scheibe laufen zu lassen, ist sogar besser als erhofft.
Mahemoff