ОНОВЛЕННЯ
tl; dr Рішення: оновлення до менше 530
Від http://www.greenwoodsoftware.com/less/news.530.html :
Не виводите послідовність init терміналу, якщо на одному екрані використовується -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
. Дивовижна regexp, яка допомагає видалити кольорові коди, з /programming//a/18000433/2487227
Я зберег цей сценарій до /usr/local/bin/pager
і потімgit config --global core.pager /usr/local/bin/pager
Лікування пацієнтів з ОКР, ура!
-F
(закриваю, якщо на одному екрані), я завжди це роблю в поєднанні з-X
(вимкнути termcap init і de-init), але, як ви кажете, це не дозволить прокручувати мишу. (Я сумніваюсь, що прокрутка взагалі можлива-X
.) Я змінив назву питання, але не соромтеся повернути це назад, якщо відчуваєте, що він втрачає занадто багато значення. :)