Pas sans pirater le code source de less. Un peu d'histoire :
Less 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 soi-disant écran alternatif. C'est vers cela que la plupart des applications en plein écran basculent pendant 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. Less passe également à cet écran alternatif, sauf si -X
est donné auquel cas ce n'est pas le cas.
De nombreux émulateurs de terminaux ont compris que lorsqu'il est en mode d'écran alternatif et l'application qui s'exécute à l'intérieur n'est pas intéressée par les événements de la souris, il est logique de convertir le défilement en événements de pression sur les touches Haut ou Bas. C'est un hack, et ce serait dangereux 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 puisque par défaut aucun de ces deux ne tient lorsque vous exécutez less
, ce hack démarre (sous réserve que l'émulateur de terminal le supporte et soit activé via \e[?1007h
contre \e[?1007l
). Vos événements de défilement sont convertis par l'émulateur de terminal en touches haut et bas, et moins ne peut pas les distinguer des touches réelles. Il ne reçoit pas les événements de défilement de la souris :il voit les pressions sur les touches Haut et Bas.
Alors voilà :Soit vous passez à l'écran alternatif et le hack du terminal convertit les événements de défilement en pressions de touches pour moins cher, et l'écran normal est restauré lorsque vous quittez; ou vous ne le faites pas, et puis il ne peut y avoir de conversion magique des événements de défilement en pressions sur les touches et moins ne comprend pas les événements de défilement.
Alors que pourrait-on faire ? Eh bien, soit implémentez le support de la souris dans less 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 étrange :en quittant, après être revenu à l'écran normal, less
pourrait pour la dernière fois imprimer un écran complet de contenu, en répétant ce qui était affiché avant de quitter.
En pratique, cela se résume essentiellement à :désolé, oubliez ça.
Apparemment, la mise à niveau vers une version inférieure à 530 ou plus récente vous procurera la fonctionnalité souhaitée,
http://www.greenwoodsoftware.com/less/news.530.html
Voici les différences entre la version 487 et la version 530 :
Ne pas afficher la séquence d'initialisation du terminal si vous utilisez -F et que le fichier tient sur un seul écran.
Je n'ai trouvé aucun PPA « moins » doté de la version la plus récente, il vous suffit donc de télécharger le pack source, de le compiler localement et de l'installer.
et configurez git comme ceci :
git config --global core.pager 'less -F -S -R -i -+X'
plus d'infos :Comment utiliser "moins de -F" sans "-X", mais toujours afficher la sortie si une seule page ?