usar como comando gnu-screen scrollwheel

gnu screen - como - Usando la rueda de desplazamiento en la pantalla de GNU



screen debian (10)

¿Cómo puedo configurar la pantalla GNU para permitir que la rueda de desplazamiento del mouse se desplace en el búfer de scrollback? Intenté buscar en Google acerca de esto, pero la mayoría de los éxitos explican cómo permitir que las aplicaciones dentro de la pantalla usen la rueda de desplazamiento.


Configurar la variable TERM en vt100 lugar de xterm antes de ejecutar la pantalla también funciona.
He estado usando esto por mucho tiempo, funciona como un encanto.

Agrega esto a tu .bashrc :

# make scrollbar / wheel scrolling work when running screen in gnome-terminal (or other) if [ "$TERM" = "xterm" ]; then export TERM=vt100 fi

-

Para referencia, mi .screenrc tiene esto (no es necesario para este AFAIK):

# Extend the vt100 desciption by some sequences. termcap vt100* ms:AL=/E[%dL:DL=/E[%dM:UP=/E[%dA:DO=/E[%dB:LE=/E[%dD:RI=/E[%dC terminfo vt100* ms:AL=/E[%p1%dL:DL=/E[%p1%dM:UP=/E[%p1%dA:DO=/E[%p1%dB:LE=/E[%p1%dD:RI=/E[%p1%dC


El excelente artículo al que se refiere Jon Z ya no está disponible, pero pude capturar la versión de solo texto desde el caché de Google. Lo estoy guardando aquí en caso de que Google lo deje también en el futuro. La publicación original fue de Mikael Ståldal, así que cédala cuando se debe.

-

Cómo usar la rueda del ratón en la pantalla GNU

La pantalla GNU tiene soporte para retroceso, pero por defecto tiene que usar teclas extrañas para usarlo. Me gustaría poder usar Shift-PageUp, Shift-PageDown y la rueda del mouse para desplazarse, al igual que usted puede hacer en xterm.

No fue fácil configurar Screen para esto, e involucra la cooperación con el emulador de terminal. Pero finalmente logré una solución que funciona bastante bien. Agregue esto a su archivo ~ / .Xresources (debe cerrar sesión para que esto tenga efecto):

XTerm*saveLines: 0 XTerm*vt100.translations: #override /n/ Ctrl <Btn4Down>: string(0x1b) string("[25S") /n/ Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") /n/ Lock @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") /n/ @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") /n/ <Btn4Down>: string(0x1b) string("[5S") /n/ Ctrl <Btn5Down>: string(0x1b) string("[25T") /n/ Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") /n/ Lock @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") /n/ @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") /n/ <Btn5Down>: string(0x1b) string("[5T") /n/ Shift <KeyPress> Prior: string(0x1b) string("[25S") /n/ Shift <KeyPress> Next: string(0x1b) string("[25T") /n

Luego agregue esto a su archivo ~ / .screenrc:

defscrollback 1000 # Scroll up bindkey -d "^[[5S" eval copy "stuff 5/025" bindkey -m "^[[5S" stuff 5/025 # Scroll down bindkey -d "^[[5T" eval copy "stuff 5/004" bindkey -m "^[[5T" stuff 5/004 # Scroll up more bindkey -d "^[[25S" eval copy "stuff /025" bindkey -m "^[[25S" stuff /025 # Scroll down more bindkey -d "^[[25T" eval copy "stuff /004" bindkey -m "^[[25T" stuff /004

Esto funciona en xterm. No estoy seguro si funciona en otros emuladores de terminal.

Tenga en cuenta que esto desactiva el soporte de desplazamiento normal en xterm, solo podrá desplazarse cuando use la pantalla. Es posible que desee iniciar xterm así para usar siempre la pantalla:

xterm -e screen


En la pantalla, primero debe ingresar al "modo de retroceso" (o "modo de copia") para poder desplazarse en el búfer del retroceso: combinación de teclas Ctrl - a Esc , o Ctrl - a Ctrl - [ . Luego puede desplazarse por el historial utilizando las teclas Arriba y Abajo (o Ctrl - b , Ctrl - f para mover una página).

En ese modo, su rueda también debería funcionar, si funciona en otras aplicaciones. Se termina el "modo de retroceso" con Esc .

En cuanto al desplazamiento del búfer de retroceso sin ingresar primero al modo de retroceso, probablemente no sea posible sin modificar la pantalla. Nunca he oído hablar de una forma de acceder al búfer de retroceso, aparte del modo de retroceso.


La solución cuando se usa "Ubuntu 16.04.2 LTS" es la siguiente:

una). Actualice $ HOME / .screenrc como han especificado las respuestas anteriores:

termcapinfo xterm* ti@:te@

segundo). Use "Configuración". "Aplicaciones preferidas" para modificar el terminal predeterminado a xterm, seleccionando el "Terminal X" en la lista desplegable.

Algunas notas superfluas

  • Ninguno de los otros terminales, incluida la instalación de "lxterminal", funcionó para mí, incluso cuando alteré la línea termcapinfo a "*" en lugar de "xterm *".

  • Al hacer clic en el botón de menú en la esquina superior izquierda de la pantalla, puede obtener el cuadro de diálogo Configuración usando el tercer icono de la esquina inferior derecha.


Lo siguiente me funcionó tanto en Cygwin como en Putty: Editar .screenrc y agregar

terminfo xterm* ti=:te=



Presione Ctrl + a seguido de [

La barra de título de su terminal ahora debería decir Modo de copia.

Ahora las teclas de flecha y la rueda del mouse deberían funcionar como se espera.

Para volver a la normalidad, presione Esc o presione Entrar un par de veces.


Si las respuestas anteriores no funcionan para usted, asegúrese de que no tiene un título o la opción de línea permanente establecida en su .screenrc. Si los tienes, esto no funcionará:

termcapinfo xterm* ti@:te@

Si necesita esta información, puede intentar configurarlo en el título de su terminal (con termcapinfo )


Y para usar la rueda de desplazamiento en un VIM dentro de la pantalla GNU:

[.vimrc]

set mouse=a " hold shift to copy xterm set ttymouse=xterm2 " necessary for gnu screen & mouse


Creo que puedes agregar una línea como esta a tu ~/.screenrc :

termcapinfo xterm* ti@:te@

Donde "xterm *" es una coincidencia global de su TÉRMINO actual. Para confirmar que funciona, ^ A ^ D para separarse de la pantalla, luego screen -d -r para volver a adjuntar, luego ls varias veces e intente retroceder. Esto funciona para mi.

¿Qué es esta magia? Bueno, vamos a consultar las páginas del manual.

screen(1) dice:

termcapinfo term terminal-tweaks [window-tweaks] [..] The first argument specifies which terminal(s) should be affected by this definition. You can specify multiple terminal names by separating them with `|''s. Use `*'' to match all terminals and `vt*'' to match all terminals that begin with "vt". [..] Some examples: termcap xterm* LP:hs@ Informs screen that all terminals that begin with `xterm'' have firm auto-margins that allow the last position on the screen to be updated (LP), but they don''t really have a status line (no ''hs'' - append `@'' to turn entries off). Note that we assume `LP'' for all terminal names that start with "vt", but only if you don''t specify a termcap command for that terminal.

Desde termcap(5) :

String capabilities [..] te End program that uses cursor motion ti Begin program that uses cursor motion