Accedi al buffer di scrollback di xterm come file


8

È possibile, in qualche modo, accedere al buffer di scrollback di xterm come file (di sola lettura) o dispositivo a caratteri?

Il problema principale (per evitare il "problema" di x / y) è questo: a volte il comando che ho appena eseguito crea un output non deterministico, e mi piacerebbe usare il suo output in qualche modo senza pre-pensare di provarlo . In questo momento, l'unico modo per farlo (di cui sono a conoscenza) è usare il mouse per selezionare il testo nella selezione principale.


Alternativa all'utilizzo tee. Hai mai pensato di correre scriptper creare un registro di tutti i tuoi comandi in un file?
Stephen Quan,

Risposte:


6

Potresti farlo dicendo a xterm di stampare i dati usando l' print-everythingazione (normalmente non associato a una chiave).

In alternativa, c'è una sequenza di escape documentata in Sequenze di controllo XTerm :

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.

che potrebbe essere invocato come

printf '\033[?11i'

Ma entrambi gli approcci (per scrivere su un file) avrebbero bisogno di un printerCommand configurato.


È possibile farlo senza riavviare xterm? Se implica il riavvio di xterm, in realtà non è una risposta in quanto ciò causerebbe la perdita dell'output.
Kasperd,

Questo è quello che stavo cercando. Le risorse possono essere ricaricate al volo e sto bene per riavviare xterm. Ho creato un Fifo con nome e configurato in printerCommand, ho associato il comando print-everything a una chiave e funziona esattamente come volevo.
John Z.

2

Puoi sempre usare qualcosa come tmux che fornisce capture-paneciò che fa quello che vuoi, insieme a divisioni (verticale e orizzontale) e multiplexing, supporto di sessione e una serie di altre cose.

Oppure utilizzare un emulatore di terminale diverso xfce4-terminalè anche leggero e fornisce un facileSave Contents


1
Per me questo non sembra una risposta alla domanda. Nessuno di questi programmi è in grado di catturare magicamente output che al momento esistono solo in una finestra xterm.
Kasperd,

@kasperd una buona interpretazione. Vuole qualcosa che catturi senza pre-pensiero. Uso tmuxsenza premeditazione. Quindi non ho questo problema. Se riesci ad abituarti a usare tmux, non dovrai mai più pensarci (o molte altre cose).
Evan Carroll,
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.