Come posso aumentare il buffer di scorrimento in una sessione dello schermo in esecuzione?


237

Diciamo che ho una sessione di schermo attualmente in esecuzione con cui sto interagendo attraverso putty. Mi sono reso conto che il buffer di scrollback è troppo piccolo e vorrei aumentarlo senza iniziare una nuova sessione dello schermo.

C'è un modo per fare questo?


Nel caso in cui qualcuno vuole aumentare il buffer di scorrimento all'indietro quando si inizia una nuova sessione:screen -h <numlines>
SCZ

Risposte:


180

La pagina man spiega che è possibile entrare in modalità riga di comando in una sessione in esecuzione digitando Ctrl+ A, :e poi il rilascio del scrollback <num>comando.


4
Dovrai farlo individualmente per ciascuna finestra della schermata corrente.
Matthew Wilcoxson,

2
dove si <num>trova il numero di righe di scrollback
rakslice,

Se trovi che raggiungi il buffer massimo predefinito non puoi mostrare più cronologia e l'impostazione di scrollback <num>, non ti aiuta a estendere il buffer, è necessario ripetere l'ultimo comando per ottenere l'intero buffer della cronologia.
Kamil,

362

Premere Ctrl-aquindi :e quindi digitare

scrollback 10000

per ottenere un buffer di linea 10000, ad esempio.

È inoltre possibile impostare il numero predefinito di righe di scorrimento aggiungendo

defscrollback 10000

al tuo ~/.screenrcfile.

Per scorrere (se il terminale non lo consente per impostazione predefinita), premere Ctrl-a ESCe quindi scorrere (con il solito Ctrl-fper la pagina successiva o Ctrl-aper la pagina precedente, o semplicemente con la rotellina del mouse / due dita). Per uscire dalla modalità di scorrimento, basta premere ESC.

Un altro suggerimento: Ctrl-a imostra le impostazioni correnti del buffer.


9
+1 per il suggerimento con defscrollback che è impostato su 1024 in Ubuntu 12.10 (che devo usare al lavoro).
Erik,

2
byobu-screensu Ubuntu 12.04 sembra impostare il defscrollback su 10000
chronospoon,

4
Volevo sottolineare che se il tuo screenrc ti apre termini aggiuntivi, devi mettere il defscrollback prima che le finestre vengano aperte, altrimenti otterranno semplicemente il valore predefinito 1024
majikman

non funziona su un mac. Ho messo startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` e sta ottenendo la prima riga, ma la seconda sembra essere ignorata.
Ben

9

Esiste una quantità minima di buffer "predefinito" quando si avvia una sessione 'schermo' all'interno della 'sessione putty'. Uso molto le schermate nel mio lavoro, quindi posso dirti che non avrai una combinazione di buffer 'screen' e buffer 'putty' nella tua sessione 'screen'.

L'impostazione del numero predefinito di righe di scorrimento aggiungendo defscrollback 10000 al ~/.screenrcfile è la soluzione corretta.

A proposito, uso "defscrollback 200000" nel mio ./screenrcfile.


4

Come già accennato, abbiamo due modi!

 Impostazione interattiva per schermata (sessione)

Ed è fatto in modo interattivo! E avere effetto immediatamente!

CTRL + Aseguito da :And digitiamo scrollback 1000000e premiamoENTER

Ti stacchi dallo schermo e torni indietro! Sarà sempre lo stesso.

Apri un'altra nuova schermata! E il valore viene nuovamente ripristinato ai valori predefiniti! Quindi non è un'impostazione globale!

 E l'impostazione predefinita permanente

Che viene fatto aggiungendo defscrollback 1000000a .screenrc(in home)

defscrollbacke non scrollback(def significa default)

Quello che devi sapere è se il file non è stato creato! Lo crei tu !

> cd ~ && vim .screenrc

E ci aggiungi defscrollback 1000000!

O in un comando

> echo "defscrollback 1000000" >> .screenrc

(se non già creato)

Attivo

Quando aggiungi il valore predefinito a .screenrc! La schermata già in esecuzione al ricollegamento non avrà effetto! La .screenrccorsa alla creazione dello schermo! E ha senso! Proprio come con una normale console e il lancio della shell!

E tutte le nuove schermate create avranno il valore impostato!

Verifica della dimensione effettiva del buffer dello schermo

Per controllare digitare CTRL + Aseguito dai

E il risultato sarà come

inserisci qui la descrizione dell'immagine

È importante sottolineare che la dimensione del buffer è il numero dopo il segno +
(nella figura l'ho impostato su 1 000 000)

Nota anche che quando lo cambi interattivamente! L'effetto è immediato e assume il valore predefinito!

Scorrimento

CTRL+ Aseguito da ESC(per accedere alla modalità copia).

Quindi navigare con Up, DownoPgUp PgDown

E ESCancora per uscire da quella modalità.

(Informazioni extra: per copiare hit ENTERper iniziare a selezionare! Quindi di ENTERnuovo per copiare! Semplice e interessante)

Ora il buffer è più grande!

E questo è tutto per i dettagli importanti!


Ottimo per sapere i passaggi su come scorrere!
skytree

Grazie. imparato un nuovo trucco per controllare la dimensione del buffer dello schermo usando: CTRL + A seguito da i
alphaGeek il

3

ATTENZIONE: l'impostazione di questo valore su un valore troppo alto potrebbe causare un singhiozzo significativo. Maggiore è il valore impostato, maggiore è la memoria virtuale allocata al processo dello schermo all'avvio della sessione dello schermo. Ho impostato il mio ~ / .screenrc su "defscrollback 123456789" e quando ho avviato uno schermo, il mio intero sistema si è bloccato per ben 10 minuti prima di tornare al punto in cui sono stato in grado di interrompere il processo dello schermo (che consumava 16,6 GB di VIRT mem da allora).


-3

Per i posteri, questa risposta è errata, come osservato da Steven Lu. Lasciando comunque il testo originale.

Risposta originale:

A chi arriva tramite la ricerca sul web (diversi anni dopo) ...

Quando si utilizza lo schermo, il buffer di scorrimento è una combinazione sia del screenbuffer di scorrimento, come notato dalle due risposte precedenti, sia del buffer di scorrimento dello stucco.

Assicurati di aumentare ENTRAMBI il buffer di scorrimento dello stucco e il buffer di scorrimento dello schermo, altrimenti la finestra dello stucco stesso non ti permetterà di scorrere indietro per vedere la screencronologia di scorrimento dello schermo (superato scorrendo lo schermo con ctrl+a->ctrl+u)

È possibile modificare il limite di scorrimento dello stucco nella categoria "Finestra" nelle impostazioni. Uscire e riaprire una sessione di stucco sullo schermo non chiuderà lo schermo (supponendo che tu chiuda semplicemente la finestra dello stucco e non digiti exit), come richiesto dall'OP.

Spero che aiuti a identificare perché aumentare il buffer di scorrimento dello schermo non risolva il problema di qualcuno.


17
Questo è inaccurato. Lo schermo mantiene il proprio buffer. Quando scorri verso l'alto con lo schermo usando la modalità copia, lo schermo ti fornisce la cronologia dello schermo tramite maledizioni. Quando viene utilizzato un multiplexer terminale come lo schermo, il buffer dell'emulatore di terminale nativo non viene utilizzato (in effetti potrebbe o meno accumulare immondizia come effetto collaterale)
Steven Lu

punti positivi, e credo che tu abbia ragione ... Mi chiedo se dovrei cancellare la mia risposta?
Brad P.

Non ne sono sicuro. Poiché ciò eliminerebbe anche il mio commento che alla gente sembra piacere.
Steven Lu,

3
ahah, giusto. Penso che lo modificherò per notare che non è corretto, ma lascio il testo originale
Brad P.

2
Certo, grazie. Preferisco lasciare solo modifiche additive su un sito come questo in modo che le persone possano uscirne senza essere confuse.
Steven Lu,
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.