Obtenga el contenido del búfer de desplazamiento TMux

13

Con TMux, ¿hay alguna forma de recuperar mediante programación el contenido del búfer de desplazamiento desde arriba de la línea de comando actual?

Básicamente, estoy buscando escribir un script bash para iterar hacia arriba hasta que encuentre una cadena coincidente. Para ser claros, no quiero pasar por el historial de comandos escritos; Quiero revisar todo lo que apareció en la consola.

mahemoff
fuente

Respuestas:

21

Con tmux 1.5 (y posterior), puede dar números negativos a la -Sopción de capture-paneacceder al búfer de desplazamiento hacia atrás.

Ejemplos:

  • Capture (hasta) 32768 líneas del búfer de desplazamiento hacia atrás junto con el texto actual del panel:

    tmux capture-pane -pS -32768
    
  • Capture solo la décima línea "desplazada" más recientemente:

    tmux capture-pane -pS -10 -E -10
    
  • Capture (hasta) las 100 líneas "desplazadas" más recientemente:

    tmux capture-pane -pS -100 -E -1
    
  • Capture once líneas que abarquen la línea superior actual del panel (5 líneas "desplazadas" y las 6 líneas superiores del panel):

    tmux capture-pane -pS -5 -E 5
    

Nota: Al igual que con la mayoría de los comandos tmux , puede usar -tpara apuntar a un panel específico si el panel "actual" no es el que le interesa probar.


Los ejemplos anteriores también usan la -popción to capture-pane, que solo está disponible a partir de tmux 1.8. Con versiones anteriores, podría evitar no tenerlo usando save-buffer:

tmux capture-pane -S -32768 \; save-buffer - \; delete-buffer
Chris Johnsen
fuente
Genial, ejecutar esto contra cualquier panel es incluso mejor de lo esperado.
mahemoff