Pas sans pirater le code source de less. Un peu d'histoire de fond:
Moins ne peut pas du tout gérer la souris (y compris les événements de défilement).
Les émulateurs de terminaux prennent en charge un écran dit alternatif. C'est à cela que la plupart des applications en plein écran passent pour leur durée (et reviennent à l'écran normal lorsqu'elles quittent, provoquant la "restauration" du contenu précédent), et il n'a pas de tampon de défilement. Moins bascule également vers cet écran alternatif, à moins qu'il ne -X
soit indiqué, auquel cas il ne le fait pas.
De nombreux émulateurs de terminaux ont compris que lorsqu'il est en mode écran alternatif et que l'application exécutée à l'intérieur n'est pas intéressée par les événements de la souris, il est judicieux de convertir le défilement en événements de pression de touche Haut ou Bas. C'est un hack, et ce serait nuisible soit sur un écran normal (imaginez ce qui se passerait par exemple à l'invite de votre shell), soit lorsque l'application souhaite gérer la souris (bien sûr, ils doivent alors voir les événements réels de la souris). Mais comme par défaut aucun de ces deux ne tient lorsque vous exécutez less
, ce hack entre en jeu (sous réserve que l'émulateur de terminal le supporte et soit activé via \e[?1007h
vs.\e[?1007l
). Vos événements de défilement sont convertis par l'émulateur de terminal en touches Haut et Bas, et moins ne peuvent pas les distinguer des touches réelles. Il ne reçoit pas les événements de défilement de la souris: il voit les touches Haut et Bas.
Vous êtes donc là: Soit vous passez à un écran alternatif et le hack du terminal convertit les événements de défilement en touches à moindre coût, et l'écran normal est restauré lorsque vous quittez; ou vous ne le faites pas, et il ne peut pas y avoir de conversion magique d'événements de défilement en touches et moins ne comprend pas les événements de défilement.
Alors, que pourrait-on faire? Eh bien, implémentez le support de la souris en moins et laissez-le gérer les événements de défilement lui-même (et vivez avec un comportement de clic ou de copier-coller non par défaut), ou implémentez un autre hack bizarre: à la fermeture, après être revenu à l'écran normal, less
pourrait pour la dernière fois imprimer un écran de contenu, en répétant tout ce qui a été affiché avant de quitter.
En pratique, cela se résume essentiellement à: désolé, oubliez-le.