Obtenir le contenu du tampon de défilement TMux


13

Avec TMux, existe-t-il un moyen de récupérer par programme le contenu du tampon de défilement au-dessus de la ligne de commande actuelle?

Je cherche essentiellement à écrire un script bash pour itérer vers le haut jusqu'à ce que je trouve une chaîne correspondante. Pour être clair, je ne veux pas parcourir l'historique des commandes tapées; Je veux parcourir tout ce qui est apparu sur la console.

Réponses:


21

Avec tmux 1.5 (et versions ultérieures), vous pouvez donner des nombres négatifs à l' -Soption d' capture-paneaccéder au tampon de défilement arrière.

Exemples:

  • Capturez (jusqu'à) 32 768 lignes de la mémoire tampon de défilement avec le texte actuel du volet:

    tmux capture-pane -pS -32768
    
  • Capturez seulement la dixième ligne de défilement la plus récente:

    tmux capture-pane -pS -10 -E -10
    
  • Capturez (jusqu'à) les 100 dernières lignes «déroulées»:

    tmux capture-pane -pS -100 -E -1
    
  • Capturez onze lignes qui chevauchent la ligne supérieure actuelle du volet (5 lignes «défilées» et les 6 premières lignes du volet):

    tmux capture-pane -pS -5 -E 5
    

Remarque: comme avec la plupart des commandes tmux , vous pouvez utiliser -tpour cibler un volet spécifique si le volet «actuel» n'est pas celui que vous souhaitez tester.


Les exemples ci-dessus utilisent également l' -poption to capture-pane, qui n'est disponible qu'à partir de tmux 1.8. Avec les anciennes versions, vous pouvez contourner ce problème en utilisant save-buffer:

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

Génial, exécuter cela sur n'importe quel volet est encore mieux que prévu.
mahemoff
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.