74

Как заставить less программу не очищать экран при выходе?

Я хотел бы, чтобы он вел себя как команда git log :

  • он покидает недавно просмотренную страницу на экране при выходе
  • она не выходит less , даже если содержание помещается на одном экране (попробуйте git log -1

Есть идеи? Я не нашел подходящий less вариантов , ни Env переменные в руководстве, я подозреваю , что он установлен с помощью некоторых переменного окр хотя.

3 ответа3

90

Чтобы less очистить экран при выходе, используйте -X .

Из справочной страницы:

-X или --no-init

Отключает отправку строк инициализации и деинициализации termcap на терминал. Иногда это желательно, если строка деинициализации делает что-то ненужное, например, очистку экрана.

Что касается меньшего выхода, если содержимое помещается на одном экране, это опция -F:

-F или --quit-if-one-screen

Вызывает автоматическое завершение меньше, если весь файл может отображаться на первом экране.

-F не по умолчанию, так что, скорее всего, он где-то предустановлен для вас. Проверьте env var LESS .

15

Если вы хотите, чтобы какой-либо из параметров командной строки всегда был значением по умолчанию, вы можете добавить в свой .profile или .bashrc переменную среды LESS. Например:

export LESS="-XF"

всегда будет применять -X -F всякий раз, когда из этого сеанса входа в систему запускается меньше.

Иногда команды имеют псевдонимы (даже по умолчанию в определенных дистрибутивах). Чтобы проверить это, введите

alias

без аргументов, чтобы увидеть, не связались ли они с опциями, которые вам не нужны. Чтобы запустить настоящую команду в вашем $ PATH вместо псевдонима, просто поставьте перед ней обратную косую черту:

\less

Чтобы увидеть, установлена ли переменная среды LESS в вашей среде и влияет ли она на поведение:

echo $LESS
0

Или просто установите его в вашей глобальной конфигурации git:

git config --global core.pager 'less -FX'

Таким образом, другие инструменты не затрагиваются (что мне нравится).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .