Je peaufine le pager de Git, mais j'ai des problèmes avec ça.
Ce que je veux c'est:
- Sortie toujours colorée
- Défilement par pavé tactile ou souris
- Quitter-si-un-écran
Et ma configuration actuelle est:
$ git config --global core.pager
less -+F -+X -+S
Cela fait tout sauf le dernier.
Mais, si je supprime -+F
, il n'y aura pas de sortie en cas d'écran unique. Si je supprime -+X
également, la sortie est de retour mais je ne peux pas faire défiler le pavé tactile vers l'intérieur less
.
Existe-t-il une solution de contournement pouvant répondre à toutes les exigences ci-dessus?
-F
(quitter si un écran), je le fais toujours en combinaison avec-X
(désactiver termcap init et de-init), mais comme vous le dites, cela ne permettrait pas de faire défiler avec la souris. (Je doute que le défilement soit possible avec-X
.) J'ai modifié le titre de la question, mais n'hésitez pas à revenir en arrière si vous pensez qu'il perd trop de sens. :)Réponses:
MISE À JOUR
tl; dr Solution: passer à moins de 530
Sur http://www.greenwoodsoftware.com/less/news.530.html :
Donc, avec cette correction, nous n'avons même pas besoin de nous soucier de déterminer si nous devons l'utiliser
-X
nous-mêmes, nous en prenonsless -F
juste soin.PS. Quelques autres configurations moins que j'utilise:
J'ai finalement fini par écrire moi-même un emballage.
Les utilisateurs BSD / OSX doivent installer manuellement
gnu-sed
. L'incroyable expression régulière, qui aide à supprimer les codes de couleur, est de /programming//a/18000433/2487227J'ai enregistré ce script
/usr/local/bin/pager
, puisgit config --global core.pager /usr/local/bin/pager
Le traitement pour les patients TOC, hourra!la source
fold
devrait gérer cela ... mais, oui, des bugs peut-être ... pourriez-vous bien vouloir fournir un exemple?fold
ne comprend pas vraiment les onglets. Vous pourrez peut-être le réparer en utilisantexpand
. Cela ne gérera toujours pas les séquences d'échappement intégrées (ce qui est souvent demandé dans le contexte degit
).fold
lignes enveloppées n'étaient pas ajustées en utilisant des espaces, mais simplement trouvé le point le plus proche pour le découpage. Donc, l'apparence sera trompeuse.J'utilise le wrapper suivant comme téléavertisseur. Ce n'est pas aussi sophistiqué que l'autre wrapper montré ici (car il utilise toujours
less -S
pour tronquer les longues lignes), mais c'est sacrément simple. Semble fonctionner assez bien avec iTerm2.la source