Экран очистки команды 'less' при выходе - как его отключить?

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

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

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

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

4 ответа

Решение

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

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

-X или --no-init

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

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

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

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

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

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

export LESS="-XF"

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

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

alias

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

\less

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

echo $LESS

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

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

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

Последние версии

Версия 598 (выпущенная не раньше декабря 2021 г.) содержит переключатель , предотвращающий очистку экрана. Хотя переключатели включены при запуске less, если этот переключатель не был включен при запуске less, эту функцию также можно включить после, просто набрав--redraw-on-quit. У меня нет доступа к достаточно новой версии, чтобы ее можно было протестировать, но она у меня есть из наиболее заслуживающего доверия источника, и достаточно ввести только 4 первых символа.

Обычный пользователь, которому нужна еще более короткая комбинация клавиш, также может добавить запись в файл lesskey.

Версии до 2022 года

Версии, предшествующие 598, все еще могут достичь этого благодаря гораздо более старому ключу -X. Со страницы руководства:

-X или --no-init

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

Это следует рассматривать как обходной путь, поскольку он полностью отключает инициализацию, что может привести к тому, что клавиши (например, Home и End) перестанут работать.

Другие вопросы по тегам