Как заставить git-пейджер очистить экран после выхода?

30

Пейджер меньше не очищает экран, как это должно быть, когда я использую git.

Я все время использую меньше, и он обычно не оставляет вывод в терминале после выхода, но когда меньше выполняется через git, он покидает вывод в терминале. Я на 100% уверен, что в моей системе git использует меньше.

Что не так с Git и как я могу это исправить? pager = lessв ~ / .gitconfig не помогает. $ PAGER также установлен на меньше.

ggustafsson
источник
Для ясности, git не очищает экран по умолчанию , с вашим git все в порядке. Используйте ответ @ ggustafsson, чтобы изменить поведение по умолчанию.
Начало

Ответы:

32

Решение состоит в том, чтобы установить переменную LESS. Git по умолчанию less FRSX.

export LESS=R

Кроме того, вы можете изменить переменную LESS, когда вызывается пейджер:

git config --global core.pager 'less -+$LESS -R'

Смотрите раздел core.pager в man git-config

ggustafsson
источник
3
Достаточно удалить только X-опцию, она предотвращает восстановление терминала в соответствии с руководством пользователя less (1).
xuchunyang
11

Чтобы очистить экран, но оставить другое поведение без изменений, вы можете сделать

git config --global core.pager 'less -+X'

Это отключает -Xопцию для меньше.

Дэн
источник
1
Вы также хотели бы отключить флаг 'F', так как less будет автоматически закрываться, если буфер мал, что наводит вас на мысль, что выходных данных нет. Так что команда должна быть git config --global core.pager 'less -+X -+F'.
Стив