Cómo desplazarse hacia arriba en la ventana de terminal mientras se genera una nueva entrada sin volver a la parte inferior (Linux)


37

En Ubuntu, quiero desplazarme hacia arriba mientras se ejecuta un comando en la ventana de mi terminal y genera una nueva salida (en realidad, el comando que se ejecuta es rspec). Puedo desplazarme hacia arriba, pero cada vez que rspec genera una nueva línea de salida de consola, me arroja de nuevo al fondo. ¿Hay alguna forma de desplazarse hacia arriba? Estoy usando terminator en Linux Mint / Ubuntu 12.04 LTS

ACTUALIZAR

Encontré una posible solución La página de inicio de Terminator dice que con

stty ixon

puede activar "Control de flujo XON / XOFF para la salida del terminal. Ser capaz de pausar la salida escribiendo ^ S y reanudarla escribiendo ^ Q [...]"

Sin embargo, esto no es totalmente lo que quería, sin tener que pausar la salida (y tal vez preguntándome al olvidar encenderlo de nuevo), pensé que podría haber una simple tecla modificadora como shft-alt con la rueda del mouse desplazándose hacia arriba ... Cualquiera mejores soluciones?


Eso es algo que realmente me gusta de LXTerminal (LXDE).
Matthew Lundberg

¿Te desplazas por Shift-PgUp o por la barra de desplazamiento?
ott--

@MatthewLundberg Normalmente con la rueda de desplazamiento del mouse, entonces barra de desplazamiento. Pero tampoco funciona con desplazamiento pgup :( ¿Puedo tener en el interior del terminador lxterminal así, ¿sabes?
Yo Ludke

1
xfce4-terminaltiene una opción llamada Desplazamiento en la salida que puede desmarcar y hace exactamente lo que pidió.
Martín Canaval

1
Como solución alternativa, puede enviar la salida a un archivo, abrir otro terminal y tail -f file.txtverlo a medida que se genera. Eso dejaría a su primer terminal libre para desplazarse hacia atrás y aún le permitiría ver la salida en tiempo real. No elegante, lo sé.
terdon el

Respuestas:


53

Aunque llego un poco tarde, estoy publicando esto aquí para que cualquiera que venga aquí obtenga una solución. Para mí, la solución al mismo problema fue:

Preferencias del terminador -> Pestaña Perfiles -> Desplazamiento [sub] pestaña -> Desmarque la opción 'Desplazarse por la salida'.

Lo bueno de esta opción es que todavía se desplazará en la salida cuando esté en la parte inferior de la salida, pero tan pronto como se desplace hacia arriba, se detendrá y no le molestará incluso si el contenido de la salida todavía se está generado.

espero que esto ayude


fresco :) ¿Es posible crear un acceso directo para activar esta opción?
Yo Ludke

1
He buscado un poco, pero no he encontrado ninguna manera de alternarlo con un acceso directo dentro del terminador. Sin embargo, como la opción está escrita en el archivo de configuración del terminador en "$ HOME / .config / terminator / config", debería ser posible asignar un acceso directo global a un comando que active y desactive la opción directamente en el archivo de configuración.
Chikitulfo

44
Aún así, realizar ese cambio en el archivo de configuración no afectará a las instancias del terminador que ya se están ejecutando, sino que solo afectará a las nuevas instancias del terminador iniciadas después de la edición. Entonces, si desea alternarlo en un terminador en ejecución, debe hacerlo manualmente, afaik. En cualquier caso, con la opción conmutada a falso, tan pronto como se desplace hacia la última línea, continúa el desplazamiento automático en la salida. Solo detiene el desplazamiento automático si se desplaza manualmente hacia arriba. Así que no veo ninguna necesidad real de activar y desactivar la opción.
Chikitulfo

1

tail -f log.txt | lessse actualizará para avanzar a la nueva información, y luego podrá subir o bajar. También puede usar las lessfunciones de búsqueda, etc. Con el método de tubería, también puede analizar la salida en movimiento.

Y la misma idea, pero sin el tubo: less +F log.txt.
(Esto supone que puede trabajar con su contenido de esta manera).

La antigua forma de Unix era presionar Ctrl-S en su terminal para detener y Ctrl-Q para reiniciar el desplazamiento de salida: esto es básicamente lo que el terminador le permite hacer stty ixon.
Con las barras de desplazamiento agregadas, esto me parece bastante decente: presiona Control-S, desplázate hasta lo que quieras y luego Control-Q para volver a bajar. Sí, ocasionalmente olvidará desempaquetar la salida.

Debido a que soy excepcionalmente vago, y porque me gusta la flexibilidad de la redirección de salida, usaría tail -f con la tubería (suponiendo que se adapte al caso). Entonces puedo detenerlo, subir la flecha y agregar algo como un grep, y aún se ejecuta: tail -f tac_plus.log | less | egrep 'peerip'

Arrojar algo de cats y teeallí y usted tiene un partido real.


Quería usar esto para las especificaciones de rspec: el problema es que, con los enfoques de cola / menos, los colores se pierden (el resultado es blanco y negro en lugar de verde / rojo si ejecuto el comando directamente)
Yo Ludke

@YoLudke No estoy familiarizado con rspec o cómo se colorea. Hay formas de pasar colores a través de grep, etc., pero eso podría no funcionar aquí. ¿Estás haciendo algo como ejecutar apuntando rspec a un proceso persistente / en bucle / de larga ejecución, y obtener tu salida de eso?
belacqua
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.