В последних изменениях в документации упоминается другой способ удаления опции по умолчанию для less(«опции по умолчанию»FRSX ).
По этому вопросу это будет (git 1.8+)
git config --global --replace-all core.pager 'less -+F -+X'
Например, Дирк Бестер предлагает в комментариях :
export LESS="$LESS -FRXK"
так что я получаю цветные различия с Ctrl-Cвыходом из less.
Уилсон Ф. упоминает в комментариях и в своем вопросе, что:
less поддерживает горизонтальную прокрутку, поэтому, когда строки обрезаются, less отключает quit-if-one-screen, чтобы пользователь мог по-прежнему прокручивать текст влево, чтобы увидеть, что было обрезано.
Эти изменения были уже видны в git 1.8.x, как показано в « Всегда использовать пейджер дляgit diff » (см. Комментарии). Но документация была переписана ( для git 1.8.5 или 1.9, четвертый квартал 2013 года ).
Просмотрщик текста для использования командами Git (например, 'less').
Значение предназначено для интерпретации оболочкой.
Порядок предпочтений:
$GIT_PAGERпеременная среды,
- затем
core.pagerконфигурация,
- то
$PAGER,
- и затем значение по умолчанию, выбранное во время компиляции (обычно «меньше»).
Когда LESSпеременная окружения не установлена, Git устанавливает ее на FRSX
(если LESSпеременная окружения установлена, Git не меняет ее вообще).
Если вы хотите выборочно переопределить настройки Git по умолчанию для LESS, вы можете установить, core.pagerнапример, напримерless -+S .
Это будет передано оболочке Git, которая переведет последнюю команду в LESS=FRSX less -+S. Среда указывает команде установить Sпараметр для обрезки длинных строк, но командная строка сбрасывает его по умолчанию для сгиба длинных строк.
Смотрите коммит 97d01f2a по причине новой редакции документации:
config: переписать core.pagerдокументацию
В тексте упоминается core.pagerи GIT_PAGERбез предоставления общей картины старшинства. Заимствовать лучшее описание из git var(1) документации.
Использование механизма, позволяющего создавать общесистемные, глобальные файлы и файлы конфигурации для каждого хранилища, не ограничивается этой конкретной переменной. Уберите это, чтобы уточнить абзац.
Перепишите часть, которая объясняет, как для переменной среды LESSустановлено значение Git по умолчанию, и как ее выборочно настроить.
Примечание: коммит b327583 ( Matthieu Moymoy , апрель 2014 г., для git 2.0.x / 2.1, Q3 2014) по умолчанию удалит S:
пейджер: по умолчанию убрать 'S' из $ LESS
По умолчанию Git используется для установки $LESSв -FRSXслучае $LESSне был установлен пользователем.
Эти FRXфлаги на самом деле имеют смысл для Git ( Fи Xпотому , что иногда выходные Git трубы на менее короткий, и Rпотому , что Git трубы цветной выход). Флаг (измельчить длинные линии), с другой стороны, не имеет отношения к Git и является предметом предпочтений пользователя. Git не должен принимать решение об изменении пользователем по умолчанию .
SLESS
В частности, Sфлаг наносит вред пользователям, которые просматривают недоверенный код в пейджере, поскольку патч выглядит следующим образом:
-old code;
+new good code; [... lots of tabs ...] malicious code;
будет выглядеть идентично:
-old code;
+new good code;
Пользователи, которые предпочитают старое поведение, могут все еще установить -FRSXявное значение переменной среды $ LESS или установить для core.pager значение ' less -S'.
Документация будет читать:
Среда не устанавливает Sпараметр, но командная строка делает, меньше инструктирует обрезать длинные строки.
Точно так же, установка core.pagerна less -+Fдеактивирует Fопцию, указанную средой из командной строки, деактивируя quit if one screenповедение «» less.
Можно специально активировать некоторые флаги для определенных команд: например, настройка pager.blameдля включения less -Sусечения строки только для git blame.
core.pager 'less -+F -+X'будет более поздний способ удалить эти параметры. Смотрите мой ответ ниже .