¿Cómo aumento el búfer de desplazamiento en una sesión de pantalla en ejecución?

237

Digamos que tengo una sesión de pantalla actualmente en ejecución con la que estoy interactuando a través de masilla. Me di cuenta de que el búfer de desplazamiento hacia atrás es demasiado pequeño y me gustaría aumentarlo sin iniciar una nueva sesión de pantalla.

¿Hay alguna forma de hacer esto?

Zach
fuente
En caso de que alguien quiera aumentar el búfer de desplazamiento hacia atrás cuando comience una nueva sesión:screen -h <numlines>
Scz

Respuestas:

180

La página del manual explica que puede ingresar al modo de línea de comandos en una sesión en ejecución escribiendo Ctrl+ A, :y luego emitiendo el scrollback <num>comando.

Frédéric Hamidi
fuente
44
Tendrás que hacer para cada ventana de la pantalla actual individualmente.
Matthew Wilcoxson
2
¿Dónde <num>está el número de líneas de
retroceso?
Si encuentra que alcanza el búfer máximo predeterminado, no puede mostrar más historial y, al establecerlo scrollback <num>, ya no le ayuda a extender el búfer, necesita rehacer el último comando para obtener todo el búfer de historial.
Kamil
362

Presione Ctrl-aa continuación, :y el tipo y luego

scrollback 10000

para obtener un búfer de 10000 líneas, por ejemplo.

También puede establecer el número predeterminado de líneas de desplazamiento al agregar

defscrollback 10000

a su ~/.screenrcarchivo

Para desplazarse (si su terminal no le permite hacerlo de manera predeterminada), presione Ctrl-a ESCy luego desplácese (con lo habitual Ctrl-fpara la página siguiente o Ctrl-apara la página anterior, o simplemente con la rueda del mouse / dos dedos). Para salir del modo de desplazamiento, solo presione ESC.

Otro consejo: Ctrl-a imuestra la configuración actual del búfer.

Lee Netherton
fuente
99
+1 para la pista con el defscrollback que se establece en 1024 en Ubuntu 12.10 (que tengo que usar en el trabajo).
erik
2
byobu-screenen Ubuntu 12.04 parece establecer defscrollback en 10000
cronospoon
44
Quería señalar que si su screenrc abre términos adicionales para usted, debe poner el defscrollback antes de que se abran las ventanas, o de lo contrario obtendrán el 1024 predeterminado
majikman
No funciona en una Mac. Puse startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` y está obteniendo la primera línea, pero la segunda parece ignorarse.
Ben
9

Hay una cantidad mínima de búfer "predeterminado" cuando inicia una sesión de 'pantalla' dentro de su 'sesión de masilla'. Uso mucho las pantallas en mi trabajo, así que puedo decirte que no tendrás una combinación de búfer de 'pantalla' y búfer de 'masilla' dentro de tu sesión de 'pantalla'.

Establecer la cantidad predeterminada de líneas de desplazamiento agregando defscrollback 10000 a su ~/.screenrcarchivo es la solución correcta.

Por cierto, uso "defscrollback 200000" en mi ./screenrcarchivo.

Oracle DBA 2000 aC
fuente
4

Como ya se mencionó tenemos dos maneras!

 Configuración interactiva por pantalla (sesión)

¡Y se hace de forma interactiva! ¡Y surta efecto de inmediato!

CTRL + Aseguido de :Y escribimos scrollback 1000000y golpeamosENTER

¡Se separa de la pantalla y vuelve! Será siempre lo mismo.

¡Abres otra nueva pantalla! ¡Y el valor se restablece nuevamente a los valores predeterminados! ¡Entonces no es un escenario global!

 Y la configuración predeterminada permanente

Lo cual se hace agregando defscrollback 1000000a .screenrc(en casa)

defscrollbacky no scrollback(def significa defecto)

¡Lo que necesita saber es si el archivo no se creó! Lo creas !

> cd ~ && vim .screenrc

¡Y le agregas defscrollback 1000000!

O en un comando

> echo "defscrollback 1000000" >> .screenrc

(si no se ha creado ya)

Tomando efecto

Cuando agrega el valor predeterminado a .screenrc! ¡La pantalla que ya se está ejecutando al volver a conectar no tendrá efecto! La .screenrccarrera en la creación de la pantalla! ¡Y tiene sentido! ¡Al igual que con una consola normal y un lanzamiento de shell!

¡Y todas las nuevas pantallas creadas tendrán el valor establecido!

Comprobación del tamaño efectivo del búfer de la pantalla

Para verificar el tipo CTRL + Aseguido dei

Y el resultado será tan

ingrese la descripción de la imagen aquí

Es importante destacar que el tamaño del búfer es el número después del signo +
(en la ilustración lo configuré en 1 000 000)

Tenga en cuenta también que cuando lo cambia de forma interactiva! ¡El efecto es inmediato y asume el valor predeterminado!

Desplazamiento

CTRL+ Aseguido de ESC(para ingresar al modo de copia).

A continuación, vaya con Up, DownoPgUp PgDown

Y ESCnuevamente para salir de ese modo.

(Información adicional: para copiar el hit ENTERpara comenzar a seleccionar! Luego ENTERotra vez para copiar! Simple y genial)

¡Ahora el búfer es más grande!

¡Y eso es todo para los detalles importantes!

Mohamed Allal
fuente
¡Es genial saber los pasos de cómo desplazarse!
skytree
Gracias. aprendí un nuevo truco para verificar el tamaño del búfer de pantalla usando: CTRL + A seguido de i
alphaGeek
3

ADVERTENCIA: establecer este valor demasiado alto puede hacer que su sistema experimente un problema importante. Cuanto mayor sea el valor que establezca, más memoria virtual se asignará al proceso de la pantalla al iniciar la sesión de la pantalla. Configuré mi ~ / .screenrc en "defscrollback 123456789" y cuando inicié una pantalla, todo mi sistema se congeló durante unos 10 minutos antes de volver al punto en que pude matar el proceso de la pantalla (que consumía 16.6GB de VIRT mem para entonces).

1GLENCo
fuente
-3

Para la posteridad, esta respuesta es incorrecta como lo señaló Steven Lu. Sin embargo, dejando el texto original.

Respuesta original:

Para aquellos que llegan a través de la búsqueda web (varios años después) ...

Cuando usa la pantalla, su búfer de desplazamiento hacia atrás es una combinación tanto del screenbúfer de desplazamiento hacia atrás como las dos respuestas anteriores han señalado, como de su búfer de desplazamiento hacia atrás de masilla.

Asegúrese de aumentar tanto el búfer de desplazamiento de la masilla como el búfer de retroceso de la pantalla, de lo contrario, su ventana de masilla no le permitirá desplazarse hacia atrás para ver su screenhistorial de retroceso (superado al desplazarse dentro de la pantalla con ctrl+a->ctrl+u)

Puede cambiar el límite de desplazamiento de masilla en la categoría "Ventana" en la configuración. Salir y volver a abrir una sesión de masilla en su pantalla no cerrará su pantalla (suponiendo que simplemente cierre la ventana de masilla y no escriba exit), como solicitó el OP.

Espero que ayude a identificar por qué aumentar el búfer de desplazamiento de la pantalla no resuelve el problema de alguien.

Brad P.
fuente
17
Esto es inexacto. La pantalla mantiene su propio búfer. Cuando se desplaza hacia arriba con la pantalla usando el modo de copia, la pantalla le está enviando su propio historial a través de maldiciones. Cuando se usa un multiplexor de terminal, como la pantalla, el búfer del emulador de terminal nativo no se usa (de hecho, puede o no acumular basura como efecto secundario)
Steven Lu
buenos puntos, y creo que estás en lo correcto ... Me pregunto si debería eliminar mi respuesta.
Brad P.
No estoy seguro. Como eso también eliminaría mi comentario que a la gente parece gustarle.
Steven Lu
3
jaja, muy bien. Creo que lo editaré para notar que es incorrecto, pero deje el texto original
Brad P.
2
Seguro gracias. Prefiero dejar solo cambios aditivos en un sitio como este para que las personas puedan salir de él sin confundirse.
Steven Lu