cómo hacer que menos buscapersonas responda a la rueda de desplazamiento y no borrar la pantalla

13

Sé sobre respuestas como cómo-hacer-mouse-wheel-scroll-the-less-pager-using-bash-and-gnome-terminal , que es eliminar la -Xbandera de la variable de entorno $ LESS. Pero me gustaría hacer ambas cosas :

  1. use la rueda del mouse para desplazar el buscapersonas (en lugar de desplazar la barra de desplazamiento de la ventana de terminal) (que se obtiene al eliminar -X de $LESS)
  2. hacer que el contenido del buscapersonas permanezca en la pantalla después de salir (lo que normalmente se logra agregando -X a $LESS).

¿Hay alguna manera de que pueda tener mi pastel y comerlo también?

Kevin G.
fuente

Respuestas:

20

No sin hackear el código fuente de less. Un poco de historia de fondo:

Less no puede manejar el mouse (incluidos los eventos de desplazamiento) en absoluto.

Los emuladores de terminal admiten una llamada pantalla alternativa. Esto es a lo que la mayoría de las aplicaciones de pantalla completa cambian durante su duración (y vuelven a la pantalla normal cuando se cierran, lo que hace que los contenidos anteriores se "restauren"), y no tiene un búfer de desplazamiento hacia atrás. Menos también cambia a esta pantalla alternativa, a menos que -Xse indique, en cuyo caso no es así.

Muchos emuladores de terminal descubrieron que cuando está en modo de pantalla alternativa y la aplicación que se ejecuta en el interior no está interesada en los eventos del mouse, tiene sentido convertir el desplazamiento en eventos de pulsación de tecla Arriba o Abajo. Es un truco, y sería dañino ya sea en la pantalla normal (imagine lo que sucedería, por ejemplo, en el indicador de comandos de su shell) o cuando la aplicación desee manejar el mouse (claro, entonces tienen que ver los eventos reales del mouse). Pero dado que ninguno de estos dos se mantiene de manera predeterminada cuando se está ejecutando less, este truco se activa (sujeto al emulador de terminal que lo admite y se habilita a través de \e[?1007hvs.\e[?1007l) El emulador de terminal convierte sus eventos de desplazamiento en pulsaciones de teclas Arriba y Abajo, y menos no puede distinguirlos de las pulsaciones de teclas reales. No recibe eventos de desplazamiento del mouse: ve pulsaciones de teclas arriba y abajo.

Así que ahí está: puede cambiar a una pantalla alternativa y el hack de la terminal convierte los eventos de desplazamiento en pulsaciones de teclas por menos tiempo, y la pantalla normal se restablece al salir; o no, y entonces no puede haber ningún evento mágico de conversión de desplazamiento en pulsaciones de teclas y menos no comprende los eventos de desplazamiento.

Entonces, ¿qué se puede hacer? Bueno, implemente el soporte del mouse en menos y deje que maneje los eventos de desplazamiento (y viva con un clic no predeterminado o un comportamiento de copiar y pegar), o implemente otro truco extraño: al salir, después de volver a la pantalla normal, lesspodría por última vez imprima una pantalla llena de contenido, repitiendo lo que se mostró antes de salir.

En la práctica, básicamente se reduce a: lo siento, olvídalo.

egmont
fuente
0

Aparentemente, actualizar a menos de 530 o más reciente le dará la función deseada,

http://www.greenwoodsoftware.com/less/news.530.html

Estas son las diferencias entre la versión 487 y la versión 530:

No envíe la secuencia de inicio de terminal si usa -F y el archivo se ajusta en una pantalla.

No encontré ningún PPA 'menos' que tenga la versión más nueva, así que solo descarga el paquete fuente y compila localmente e instálalo.

y configura git así:

git config --global core.pager 'less -F -S -R -i -+X'

más información: ¿Cómo usar "menos -F" sin "-X", pero aún mostrar salida si solo una página?

Ted Feng
fuente
0

Realmente no es posible usar la rueda del mouse para desplazarse en menos buscapersonas, ¡pero es posible usar la rueda del mouse para desplazar el contenido con w3m pager! w3m es un " buscapersonas navegable WWW con excelente soporte de tablas / cuadros ", por lo que incluso es posible usarlo como navegador web de consola. Además, es posible usar w3m como visor de imágenes de consola (no funciona con todos los emuladores de terminal, pero funciona bastante bien con xterm). w3m " tiene soporte para tablas, marcos, conexiones SSL, color e imágenes en línea ". Aplicación muy útil! captura de pantalla

ILUXA
fuente