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


30

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

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

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


Для ясности, 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


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'.
Стив
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.