"менше" екран очищення команд при виході - як його вимкнути?


79

Як змусити lessпрограму не очищати екран після виходу?

Я хотів би, щоб він поводився як git logкоманда:

  • вона залишає нещодавно переглянуту сторінку на екрані після виходу
  • він не виходить, lessнавіть якщо вміст вміщується на одному екрані (спробуйте git log -1)

Будь-які ідеї? Я не знайшов lessу посібнику жодних підходящих параметрів, а також змінних env, але, підозрюю, він встановлений через якусь змінну env, хоча.


Імовірно, вам потрібен аспект прокрутки менше, тому moreне був би підходящим?
Svend

Відповіді:


95

Щоб запобігти lessочищенню екрана після виходу, використовуйте -X.

На сторінці сторінки:

-X або --no-init

Вимикає надсилання рядків ініціалізації та деініціалізації термінара в термінал. Іноді це бажано, якщо рядок деініціалізації робить щось непотрібне, як, наприклад, очищення екрана.

Що стосується менше виходу, якщо вміст вміщується на одному екрані, це варіант -F:

-F або --quit-if-one-screen

Викликає менше автоматичного виходу, якщо весь файл можна відобразити на першому екрані.

-FХоча це не за замовчуванням, тому він, ймовірно, десь встановлений для вас. Перевірте env var LESS.


Відмінно! -X це те, що я мав на увазі.
Войцех Качмарек

7
Це особливо дратує, якщо ви знаєте про це, -Fале ні -X, оскільки тоді перехід до системи, яка скидає екран на init, змусить короткі файли просто не з’являтися без видимих ​​причин. Це мене покусало, ackколи я намагався перенести ACK_PAGER='less -RF'налаштування на Mac. Дякую купу!
markpasc

@markpasc: Дякую, що вказали на це. Я б не зрозумів, що ця комбінація спричинить цей ефект, але зараз це очевидно.
sleske

7
Це особливо корисно для пейджера, щоб сторінки сторінок не зникали, як тільки ви менше виходите за допомогою клавіші 'q'. Тобто, ви переходите до позиції на чоловічій сторінці, яка вас цікавить лише для того, щоб вона зникала, коли ви виходите з меншого пейджера, щоб використовувати інформацію. Отже, я додав: export MANPAGER='less -s -X -F'до свого .bashrc, щоб не змінювати інформацію про чоловічу сторінку на екрані, коли я виходжу менше, щоб я міг фактично використовувати її, а не запам'ятовувати її.
Майкл Голдштейн

2
Це якось гарно, що вам потрібно вирішити, коли ви почнете, lessяк він повинен вести себе, коли ви збираєтесь вийти.
Майкл Берр

17

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

export LESS="-XF"

завжди застосовуватиме -X -F щоразу, коли запускається менше сеансу входу.

Іноді команди псевдоніми (навіть за замовчуванням у певних дистрибутивах). Щоб перевірити це, введіть

alias

без аргументів, щоб дізнатись, чи не зводиться він із параметрами, які ви не хочете. Щоб запустити фактичну команду у вашому $ PATH замість псевдоніму, просто передмовляйте її з косою рисою:

\less

Щоб побачити, чи встановлена ​​змінна середовище МЕНШЕ у вашому оточенні та впливає на поведінку:

echo $LESS

2
Насправді я додаю export LESS="-XFR"так, що кольори відображаються lessтакож.
dotancohen

2
Дякую за це! -XFсамостійно порушував вихід git diffі -XFRотримує найкраще з обох світів - не очищення екрана, а кольоровий git diffвихід.
Джайлс Томас,

1

Або просто встановіть його у вашому глобальному конфігурації git:

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

Таким чином, інші інструменти не впливають (що мені подобається).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.