Ottieni i contenuti del buffer di scorrimento TMux


13

Con TMux, c'è un modo per recuperare a livello di codice il contenuto del buffer di scorrimento dalla riga di comando corrente?

Fondamentalmente sto cercando di scrivere uno script bash per scorrere verso l'alto fino a quando non trovo una stringa corrispondente. Per essere chiari, non voglio passare attraverso la cronologia dei comandi digitati; Voglio passare attraverso tutto ciò che è apparso sulla console.

Risposte:


21

Con tmux 1.5 (e versioni successive), puoi dare numeri negativi -Sall'opzione di capture-paneaccedere al buffer di scorrimento indietro.

Esempi:

  • Cattura (fino a) 32768 righe del buffer di scorrimento indietro insieme al testo corrente del riquadro:

    tmux capture-pane -pS -32768
    
  • Cattura solo la decima linea "scrolled off" più recente:

    tmux capture-pane -pS -10 -E -10
    
  • Cattura (fino a) le 100 linee più recenti "scrolled off":

    tmux capture-pane -pS -100 -E -1
    
  • Cattura undici righe che si trovano a cavallo dell'attuale riga superiore del riquadro (5 righe "scrolled off" e le prime 6 righe del riquadro):

    tmux capture-pane -pS -5 -E 5
    

Nota: come con la maggior parte dei comandi di tmux , è possibile utilizzare -tcome target un riquadro specifico se il riquadro "corrente" non è quello a cui si desidera eseguire il sondaggio.


Gli esempi precedenti usano anche l' -popzione to capture-pane, che è disponibile solo a partire da tmux 1.8. Con le versioni precedenti potresti evitare di averlo usando save-buffer:

tmux capture-pane -S -32768 \; save-buffer - \; delete-buffer

Fantastico, eseguirlo su qualsiasi riquadro è persino meglio di quanto sperato.
mahemoff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.