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?