Могу ли я прокрутить до новых строк, используя колесо мыши внутри git diff?

12

Я использую терминал по умолчанию Ubuntu 16.04 (это GNOME, я верю?)

Проблема, с которой я сталкиваюсь, заключается в том, что когда я использую git diffкоманду для проверки своих локальных изменений, я могу прокручивать вверх / вниз с помощью колесика мыши, но новые строки не отображаются, когда я добираюсь до дна (поэтому я вижу только одну страницу меняется). Чтобы перейти к следующим строкам, я могу использовать пробел или стрелки вверх / вниз на клавиатуре, но можно ли как-нибудь сделать это с помощью колесика мыши?

Кстати, если я использую lessкоманду, она работает как положено -> прокрутка вниз переходит к новым строкам.

Тодор
источник

Ответы:

21

Благодаря ответу @edwinksl мне удалось найти решение проблемы.

Так что по умолчанию git использует LESSкак пейджер, и я считаю, что аргументы по умолчанию - это FRSX.

На git 1.8+ вы можете удалить опции less -+<option>, в моем случае мне нужно удалить Xопцию так:

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

но, как упоминает @pcworld, это может вызвать проблемы с разницей, которая помещается на одной странице, таким образом:

git config --global --replace-all core.pager 'less -+FX'

исправил проблему с прокруткой для меня.

Тодор
источник
3
Мне нужно было добавить -+Fк параметрам lessили вывод, который умещается на одном экране, пуст. Обратите внимание, что оба этих параметра объединят любой вывод git через пейджер, даже если он уместится на одном экране. Однако есть скрипт-обертка для less, который вызывает меньшее, только если вывод превышает размер экрана . См. Комментарии № 10 и № 11 об этой ошибке Debian и об этом вопросе меньше для получения дополнительной технической информации.
pcworld
3

С /programming//a/2183920/486919 , один из способов сделать это и сохранить подсветку различий - использовать git diffбез пейджера:

git --no-pager diff
edwinksl
источник
Спасибо за этот ответ, это поможет мне найти точное решение, которое я искал -> включение прокрутки колесика мыши. Хотя удаление пейджера - хороший обходной путь, я предпочитаю начинать читать различия с самого начала.
Тодор
@ Тодор Это честно; Я согласен --no-pager, лучше всего подходит для коротких различий, но не для длинных.
Edwinksl