Экран очистки команды '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) перестанут работать.