Как я могу передать параметры менее из git-diff?

У меня достаточно стандартная настройка для git на машине с OSX, но я бы хотел добавить -j.5 к меньшему, чтобы поиск совпадений происходил в середине экрана.

Я пытался делать export LESS=-j.5, но это вызвало такой контент, как ESC[1mdiff --git a/app/images/bluecog-icon.png b/app/images/bluecog-icon.pngESC[m появляться, хотя и заранее, echo $LESS дал пустой результат. Я посмотрел вверх git help diff но в нем не было упоминаний о "пейджере" или "менее", которые относятся к инструменту Unix (в отличие от значения, противоположного "большему").

Либо изменение переменной среды, либо передача параметра в git diff приемлемо Я знаю, что я могу просто ввести -j.5 когда я нахожусь внутри самого git diff.

2 ответа

Решение

Настройка Git немного своеобразна:

  • Пейджер по умолчанию less (хотя это опция времени компиляции).
  • Вы можете настроить конкретный пейджер с core.pager, Если вы сделаете это, вы можете добавить параметры здесь.
  • less Сама команда читает переменную окружения LESS Сначала сканирует варианты.
  • Если переменная среды LESS установлен (на что угодно, включая даже пустую строку), Git не устанавливает его; но в противном случае Git устанавливает его FRX, даже если пейджер не less,

Следовательно, как отмечено в git config документация:

... Если вы хотите выборочно переопределить настройки Git по умолчанию для LESS Вы можете установить core.pager например less -S, Это будет передано оболочке Git, которая переведет последнюю команду в LESS=FRX less -S, Окружающая среда не устанавливает S вариант, но командная строка делает, инструктируя меньше обрезать длинные строки. Аналогично, настройка core.pager в less -+F деактивирует F параметр, указанный средой из командной строки, деактивирующий поведение "выйти, если один экран" less, Можно специально активировать некоторые флаги для определенных команд: например, настройка pager.blame в less -S разрешает усечение строки только для git blame,

Следовательно, если вы хотите это только для git diff, задавать pager.diff в less -j.5, Если вы хотите это для всех команд Git, вы можете установить core.pager в less -j.5 или установите переменную среды LESS в FRXj.5; оба будут иметь одинаковый эффект.

Те ESC[1m цветовые коды для терминала За less интерпретировать их добавить опцию -R, Опции -FSX Также рекомендуются:

export LESS=FRSXj.5
Другие вопросы по тегам