Dapatkan konten buffer gulir TMux

13

Dengan TMux, apakah ada cara untuk mengambil secara terprogram konten buffer gulir dari atas baris perintah saat ini?

Saya pada dasarnya mencari untuk menulis skrip bash untuk beralih ke atas sampai saya menemukan string yang cocok. Untuk lebih jelasnya, saya tidak ingin melihat riwayat perintah yang diketik; Saya ingin melihat semua yang muncul di konsol.

mahemoff
sumber

Jawaban:

21

Dengan tmux 1.5 (dan lebih baru), Anda dapat memberikan angka negatif ke -Sopsi capture-paneuntuk mengakses buffer gulir kembali.

Contoh:

  • Abadikan (hingga) 32768 baris buffer belakang gulir bersama dengan teks panel saat ini:

    tmux capture-pane -pS -32768
    
  • Abadikan hanya baris kesepuluh yang paling baru "digulirkan":

    tmux capture-pane -pS -10 -E -10
    
  • Abadikan (hingga) 100 baris yang paling baru "digulirkan":

    tmux capture-pane -pS -100 -E -1
    
  • Tangkap sebelas baris yang mengangkangi garis atas panel saat ini (5 garis "digulirkan", dan 6 garis teratas panel):

    tmux capture-pane -pS -5 -E 5
    

Catatan: Seperti kebanyakan perintah tmux , Anda dapat menggunakan -tuntuk menargetkan panel tertentu jika panel "saat ini" bukan yang Anda minati.


Contoh di atas juga menggunakan -popsi untuk capture-pane, yang hanya tersedia mulai pada tmux 1.8. Dengan versi yang lebih lama, Anda dapat mengatasi hal itu dengan menggunakan save-buffer:

tmux capture-pane -S -32768 \; save-buffer - \; delete-buffer
Chris Johnsen
sumber
Hebat, menjalankan ini melawan panel apa pun bahkan lebih baik dari yang diharapkan.
mahemoff