ACTUALIZAR
tl; dr Solución: actualice a menos 530
Desde http://www.greenwoodsoftware.com/less/news.530.html :
No envíe la secuencia de inicio de terminal si usa -F y el archivo se ajusta en una pantalla.
Entonces, con esta solución, ni siquiera tenemos que molestarnos en determinar si la usamos -X
solos, less -F
solo nos encargamos de eso.
PD. Algunas otras configuraciones menos que uso:
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'
Finalmente terminé escribiendo un envoltorio por mi cuenta.
#!/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"
Los usuarios de BSD / OSX deben instalar manualmente gnu-sed
. La increíble expresión regular, que ayuda a eliminar los códigos de color, es de /programming//a/18000433/2487227
He guardado este script en /usr/local/bin/pager
y luegogit config --global core.pager /usr/local/bin/pager
El tratamiento para pacientes con TOC, ¡hurra!
-F
(salir si hay una pantalla) siempre lo hago en combinación con-X
(deshabilitar termcap init y de-init), pero como usted dice, eso no permitiría desplazarse con el mouse. (Dudo que sea posible desplazarse con-X
.) Modifiqué el título de la pregunta, pero siéntase libre de retroceder si siente que pierde demasiado significado. :)