MISE À JOUR
tl; dr Solution: passer à moins de 530
Sur http://www.greenwoodsoftware.com/less/news.530.html :
Ne pas sortir la séquence d'initialisation du terminal si vous utilisez -F et que le fichier tient sur un seul écran.
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 prenons less -F
juste soin.
PS. Quelques autres configurations moins que j'utilise:
export PAGER='less -F -S -R -M -i'
export MANPAGER='less -R -M -i +Gg'
git config --global core.pager 'less -F -S -R -i'
#alias less='less -F -S -R -M -i'
J'ai finalement fini par écrire moi-même un emballage.
#!/usr/local/bin/bash
# BSD/OSX compatibility
[[ $(type -p gsed) ]] && SED=$(type -p gsed) || SED=$(type -p sed)
CONTEXT=$(expand <&0)
[[ ${#CONTEXT} -eq 0 ]] && exit 0
CONTEXT_NONCOLOR=$( $SED -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" <<< "$CONTEXT")
LINE_COUNT=$( (fold -w $(tput cols) | wc -l) <<< "$CONTEXT_NONCOLOR" )
[[ $LINE_COUNT -ge $(tput lines) ]] && less -+X -+S -R <<< "$CONTEXT" || echo "$CONTEXT"
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/2487227
J'ai enregistré ce script /usr/local/bin/pager
, puisgit config --global core.pager /usr/local/bin/pager
Le traitement pour les patients TOC, hourra!
-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. :)