В последних изменениях в документации упоминается другой способ удаления параметра по умолчанию для 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
для прерывания длинных строк, но командная строка сбрасывает его по умолчанию для сгиба длинных строк.
См. commit 97d01f2a по причине новой редакции документации:
config: переписать core.pager
документация
В тексте упоминаются core.pager
и GIT_PAGER
без указания общей картины старшинства. Заимствуйте лучшее описание из git var
(1) документации.
Использование механизма, позволяющего разрешать общесистемные, глобальные файлы и файлы конфигурации для каждого хранилища, не ограничивается этой конкретной переменной. Снимите его, чтобы уточнить абзац.
Перепишите часть, которая объясняет, как для переменной среды LESS
установлено значение Git по умолчанию и как ее выборочно настроить.
Примечание: commit b327583 ( Matthieu Moy moy
, апрель 2014 г., для git 2.0.x / 2.1, Q3 2014) по умолчанию удалит S:
пейджер: по умолчанию удалить 'S' из $ LESS
По умолчанию Git использовал для $LESS
значение -FRSX
, если $LESS
не было установлено пользователем.
Флаги FRX
на самом деле имеют смысл для Git (F
и X
, потому что иногда выходной канал Git меньше, а R
, потому что Git передает цветной вывод).
Флаг S
(отрезать длинные строки), с другой стороны, не связан с Git и зависит от предпочтений пользователя. Git не должен принимать решение изменить значение по умолчанию LESS
.
В частности, флаг S
наносит вред пользователям, которые просматривают недоверенный код в пейджере, поскольку патч выглядит следующим образом:
-old code;
+new good code; [... lots of tabs ...] malicious code;
будет выглядеть так же, как:
-old code;
+new good code;
Пользователи, предпочитающие старое поведение, могут все еще установить явное значение переменной окружения $ LESS на -FRSX
или установить для core.pager значение less -S
.
Документация будет читать:
Среда не устанавливает опцию S
, но командная строка делает, меньше инструктирует обрезать длинные строки.
Аналогично, установка core.pager
в less -+F
приведет к деактивации опции F
, заданной средой, из командной строки, отключив поведение less
* *1147*.
Можно специально активировать некоторые флаги для определенных команд: например, установка pager.blame
в less -S
разрешает усечение строки только для git blame
.