GNU/Linux >> Tutoriels Linux >  >> Linux

comment faire en sorte que moins de téléavertisseur réponde à la molette de défilement et n'efface pas l'écran

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 ?


Linux
  1. Comment faire pivoter l'écran sur un Raspberry Pi 3

  2. Comment utiliser la commande "screen" sous Linux

  3. Comment créer et appliquer un patch SVN ?

  4. Comment faire défiler vers le haut et vers le bas dans un terminal à écran découpé

  5. Comment désactiver l'économiseur d'écran SuSE ?

Comment effacer (vider) le cache DNS sous Windows, MacOS et Linux

Comment utiliser et tirer le meilleur parti de la commande fuser sous Linux

Comment verrouiller le clavier et la souris, mais pas l'écran sous Linux

Pourquoi "effacer" ne pas effacer tout l'écran ?

Comment installer et utiliser la commande d'écran Ubuntu 20.04

Comment effacer les informations d'identification dans AWS Configure ?