2011-01-26 4 views
143

Come posso copiare facilmente il buffer di scorrimento dello schermo GNU in un file? IE, una versione più potente del comando "hardcopy" ?Copia del buffer di scorrimento dello schermo GNU su file (copia estesa)?

Nella schermata di GNU, posso usare "ctrl - unESC" per entrare nel scrollback buffer. Potrei quindi segnare l'intero buffer e l'uso "ctrl - unctrl - ]" per incollarlo in un buffer di Emacs, risparmiando così in un file.

Tuttavia, questo è noioso. C'è un comando sullo schermo che semplicemente copia il buffer di scrollback in un file, come fa 'hardcopy' per la parte visibile dello schermo di ?

risposta

214

Per scrivere l'intero contenuto del buffer di scorrimento all'indietro in un file, tipo

Ctrl + A e : per arrivare alla modalità di comando , quindi

hardcopy -h <filename> 

Nelle versioni precedenti o f screen, se si esegue solo hardcopy -h, viene semplicemente scritto nel file -h. Ciò è stato risolto nella versione 4.2.0, quindiscrive in hardcopy.N dove N è il numero di finestra corrente.

+6

Ho dovuto digitare Ctrl + A: per entrare in modalità comando. – user85509

+0

Si noti che il file viene salvato nella home directory, almeno per me. Grazie per la risposta, btw! – Ritesh

+2

@allrite: viene salvato in $ PWD (se non si dà percorso completo), non esiste un comportamento speciale. – Pushpendre

0

CTL-una: il comando di problema 'accedere'

o impostarlo predefinita in .screenrc come 'deflog su'

+2

Penso che questo inizi a registrare tutto dopo aver eseguito il comando . Non voglio registrare tutto (troppo dettagliato). Voglio solo catturare il buffer di scorrimento come un file. – barrycarter

21

Press Ctrl +A: bufferfile/tmp/somefile.txtENTER, e quindi Ctrl +A>

Scriverà il contenuto corrente del buffer nel file indicato.

+0

Ho provato questo, e il "ctrl-a>" dice "non è successo nulla". Il primo passo ha detto "Bufferfile è ora '/tmp/foo.txt'", ma non sembra nemmeno creare quel file. – barrycarter

+1

Sei sicuro di aver copiato qualcosa nel buffer dello schermo usando Ctrl + A [? Sembra che il tuo buffer potrebbe essere vuoto - non copierà l'intero buffer di scorrimento, solo la parte che hai selezionato usando Ctrl + A [ – Roshan

+2

Ah, stavo cercando un collegamento per copiare l'intero buffer senza usare ctrl-a [ – barrycarter

6

cercano hardcopy -h per includere l'intero buffer

+2

Questo fa solo una copia nel file ~/-h – barrycarter

+0

@barrycarter: potrebbe essere cambiato nelle versioni più recenti. A partire dalla schermata 4.03.01, 'hardcopy -h' scrive su' hardcopy.N', dove 'N' è il numero della finestra corrente. –

3

questo ha funzionato per me: Entrare in modalità di modifica (~): quindi digitare:

:hardcopy -h buff_file 

ha creato un file enorme, di cui 98% era vuota, ma i miei ceppi erano pienamente presente nel restante 2%

-3

Ctrl-a h

che salva la schermata corrente in un file di copia cartacea, ad esempio, per lo schermo hardcopy.0 0.Sembra essere un modo più veloce di andare in Ctrl-A: e digitare il comando di copia.

+3

Sfortunatamente, questo salva solo la parte VISIBILE dello schermo, non il buffer di scorrimento. – barrycarter

3

TL; DR: ^A:writebuf <filename>

OP sembra voler un modo per utilizzare la parte selezionata del buffer che si ottiene quando si fa un^A [, selezionando il testo utilizzando lo spazio come l'inizio e la fine, quindi invece di usare^A] per incollare, salvare la parte selezionata risultante del buffer in un file.

so che è anni da quando questo è stato registrato, ma ero alla ricerca di una risposta alla stessa domanda, e alla fine trovato:

^A:writebuf <filename>

nota: una 'f' in writebuf

+0

No, no. OP vuole salvare il INTERO buffer, non solo la parte selezionata. - OP – barrycarter

+1

Ratti! Mi è mancato da questo molto –

+2

Questo post è ancora utile. Buon lavoro. –