ОБНОВИТЬ
Решение: обновить до 530
С http://www.greenwoodsoftware.com/less/news.530.html :
Не выводить последовательность инициализации терминала, если используется -F и файл помещается на одном экране.
Таким образом, с этим исправлением нам даже не нужно беспокоиться о том, стоит ли использовать -X
самостоятельно, less -F
просто позаботимся об этом.
PS. Некоторые другие менее конфиги, которые я использую:
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'
В конце концов я сам написал обертку.
#!/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"
Пользователи BSD / OSX должны установить вручную gnu-sed
. Удивительное регулярное выражение, которое помогает удалять цветовые коды, можно найти по адресу /programming//a/18000433/2487227.
Я сохранил этот скрипт, /usr/local/bin/pager
а затемgit config --global core.pager /usr/local/bin/pager
Лечение больных ОКР, ура!
-F
(выход, если один экран), я всегда делаю это в сочетании с-X
(отключить termcap init и de-init), но, как вы говорите, это не позволит прокрутить мышью. (Я сомневаюсь, что прокрутка вообще возможна-X
.) Я изменил название вопроса, но не стесняйтесь откатить его, если вы чувствуете, что он теряет слишком много значения. :)