GNU/Linux >> Tutoriales Linux >  >> Linux

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

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 la 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 el contenido anterior se "restaure"), y no tiene un búfer de desplazamiento hacia atrás. Less también cambia a esta pantalla alternativa, a menos que -X se da en cuyo caso no lo hace.

Muchos emuladores de terminales 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 en la pantalla normal (imagínese lo que sucedería, por ejemplo, en el indicador de shell) o cuando la aplicación desea manejar el mouse (claro, entonces tienen que ver los eventos reales del mouse). Pero dado que, de forma predeterminada, ninguno de estos dos se mantiene cuando está ejecutando less , este truco se activa (sujeto a que el emulador de terminal lo admita y se habilite a través de \e[?1007h contra \e[?1007l ). El emulador de terminal convierte sus eventos de desplazamiento en pulsaciones de teclas hacia arriba y hacia abajo, y less no puede distinguirlos de las pulsaciones de teclas reales. No recibe eventos de desplazamiento del mouse:ve las pulsaciones de las teclas Arriba y Abajo.

Ahí lo tiene:o cambia a la pantalla alternativa y el truco del terminal convierte los eventos de desplazamiento en pulsaciones de teclas por menos, y la pantalla normal se restaura cuando sale; o no, y entonces no puede haber ninguna magia que convierta los eventos de desplazamiento en pulsaciones de teclas y menos no entienda los eventos de desplazamiento.

Entonces, ¿qué se podría hacer? Bueno, implemente la compatibilidad con el mouse en menos y deje que maneje los eventos de desplazamiento por sí mismo (y viva con un comportamiento no predeterminado de hacer clic o copiar y pegar), o implemente otro truco extraño:al salir, después de volver a la pantalla normal, less podría por última vez imprimir 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.


Aparentemente, actualizar a menos 530 o más nuevo 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 genere la secuencia de inicio del terminal si usa -F y el archivo cabe en una pantalla.

No encontré ningún PPA 'menos' que tenga la versión más nueva, así que simplemente descargue el paquete fuente, compílelo localmente e instálelo.

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 la salida si solo es una página?


Linux
  1. ¿Es legítimo el paquete que acabo de instalar y, de no ser así, cómo desinstalarlo?

  2. Cómo girar la pantalla en una Raspberry Pi 3

  3. Cómo usar el comando "pantalla" en Linux

  4. ¿Cómo hacer y aplicar el parche SVN?

  5. Cómo desplazarse hacia arriba y hacia abajo en la terminal de pantalla dividida

Cómo borrar (vaciar) la caché de DNS en Windows, MacOS y Linux

Cómo usar y aprovechar al máximo el comando fuser en Linux

Cómo bloquear el teclado y el mouse, pero no la pantalla en Linux

¿Por qué `clear` no borra toda la pantalla?

Cómo instalar y usar el comando de pantalla Ubuntu 20.04

¿Cómo borro las credenciales en AWS Configure?