Akses buffer scrollback xterm sebagai file

8

Apakah mungkin untuk, entah bagaimana, mengakses buffer scrollback xterm sebagai file (hanya baca) atau perangkat karakter?

Masalah inti (untuk menghindari x / y "bermasalah"), adalah ini: kadang-kadang perintah yang baru saja saya jalankan menciptakan keluaran non-deterministik, dan saya ingin menggunakan outputnya entah bagaimana tanpa berpikir untuk memasangnya. . Saat ini, satu-satunya cara untuk melakukan ini (yang saya ketahui) adalah menggunakan mouse untuk memilih teks ke dalam pemilihan utama.

John Z.
sumber
Alternatif menggunakan tee. Sudahkah Anda mempertimbangkan scriptuntuk membuat log dari semua perintah Anda ke file?
Stephen Quan

Jawaban:

6

Anda bisa melakukan ini dengan memberi tahu xterm untuk mencetak data menggunakan print-everythingaksi (biasanya tidak terikat pada kunci).

Atau, ada urutan keluar yang didokumentasikan dalam XTerm Control Sequences :

CSI ? Pm i                                                                      
          Media Copy (MC), DEC-specific.                                        
            Ps = 1  -> Print line containing cursor.                            
            Ps = 4  -> Turn off autoprint mode.                                 
            Ps = 5  -> Turn on autoprint mode.                                  
            Ps = 1  0  -> Print composed display, ignores DECPEX.               
            Ps = 1  1  -> Print all pages.

yang dapat dipanggil sebagai

printf '\033[?11i'

Tetapi pendekatan mana pun (untuk menulis ke file) akan membutuhkan perintah printer yang dikonfigurasi.

Thomas Dickey
sumber
Apakah mungkin untuk melakukan itu tanpa memulai ulang xterm? Jika ini melibatkan restart xterm, itu sebenarnya bukan jawaban karena akan menyebabkan output menjadi hilang.
kasperd
Ini yang saya cari. Sumber daya dapat dimuat ulang dengan cepat, dan saya OK untuk memulai kembali xterm. Saya telah membuat fifo bernama dan mengkonfigurasinya ke perintah printer, telah mengikat perintah print-everything ke sebuah kunci dan berfungsi persis seperti yang saya inginkan.
John Z.
2

Anda selalu dapat menggunakan sesuatu seperti tmux yang menyediakan capture-paneapa yang Anda inginkan, bersama dengan split (vertikal dan horizontal) dan multiplexing, dukungan sesi, dan banyak hal lainnya.

Atau menggunakan terminal emulator yang berbeda xfce4-terminaljuga ringan dan memberikan kemudahanSave Contents

Evan Carroll
sumber
1
Bagi saya ini tidak terdengar seperti jawaban untuk pertanyaan itu. Tidak satu pun dari program tersebut yang secara ajaib dapat menangkap keluaran yang saat ini hanya ada di jendela xterm.
kasperd
@kasperd interpretasi yang adil. Dia ingin sesuatu yang menangkap tanpa dipikirkan sebelumnya. Saya menggunakan tmuxtanpa pemikiran sebelumnya. Maka saya tidak memiliki masalah ini. Jika Anda terbiasa menggunakan tmux, Anda tidak perlu memikirkan hal ini lagi (atau banyak hal lainnya).
Evan Carroll