"менше" не очищає екран після завершення роботи


2

Типовою поведінкою для "менше" є очищення екрана після виходу. Така поведінка припинилася, коли я почав використовувати:

export TERM=xterm

Тепер "менше" залишає останню сторінку, яку я переглянув на екрані, і я хочу знову включити поведінку очищення екрана за замовчуванням.

Переглядаючи цю проблему, я виявив, що люди використовують у своїх командах таку команду ~/.screenrc:

altscreen on

Я не впевнений, чи це проблема Mac, але у мене немає цієї команди.

Я використовую bash shell на терміналі Mac, і у мене не $LESSвизначена змінна середовище.


1
Це не дублікат. Інше питання прямо задає проблему всередині GNU screen. Цей не має нічого спільного screen, як свідчить "у мене немає [ altscreen] в наявності" та "я використовую bash shell на терміналі Mac".
peth

Що відбувається , коли ви телефонуєте , lessяк: less -+F -+X <file>? Якщо це змінить поведінку, ваш менший налаштований таким чином поводитись десь у вашій системній конфігурації. Якщо ні, то, ймовірно, ваш термінал не підтримує функцію альтернативного екрана або не має його ввімкнено. Вам знадобиться реверс superuser.com/questions/136162/… або отримати термінал, який має функцію альтернативного екрана.
peth

@peth: Це дійсно не повторюване запитання. Щодо вашого питання, як би я не грав з параметрами командного рядка, остання сторінка завжди залишається на екрані. Я не думаю, що це має щось спільне з меншою конфігурацією, оскільки це почалося лише після того, як я визначився export TERM=xterm. Спасибі за вашу допомогу!
Дана

Відповіді:


1

Погляньте на вашу змінну середовища $ LESS і переконайтеся, що вона не визначає -X. Я спеціально додаю це до $ МЕНШЕ, тому що не хочу, щоб екран очищався. Ось фрагмент із сторінки сторінки:

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


У мене взагалі не визначено змінну середовища $ $ менше
Dana

Як згадувалося в запитанні, це почалося лише після того, як я визначив export TERM=xterm, тому я вважаю, що це не проблема lessвизначень.
Дана

0

Ця відповідь є доповненням до відповіді від @KeithB.

перевірити параметри МЕНШЕ від echo $LESS. Якщо у нього є варіант -X, видаліть його.

LESS="options"; export LESS

В опції включаються інші варіанти, крім -X. Більш детальну інформацію, перевірте сторінку керівництва .


0

Деякі роз'яснення необхідно: lessтільки очистити екран як частина відображення нової сторінки. Описане в питанні - це альтернативний екран , функція xterm, яка Terminal.appпідтримує.

Коли ви бачите, що екран очищений, це тому, що термінал тимчасово перейшов на альтернативний екран (запустився less) і повернувся до звичайного екрана (показуючи лише запит оболонки та все, що передувало цьому перед запуском less).

lessотримує інформацію про те, як перейти до / з альтернативного екрану з опису терміналу, використовуючи $TERMдля пошуку цю інформацію. Зараз я цього не бачу в OSX (питання датоване 2011), але деякі розробники не люблять цю функцію і видаляють її з опису терміналу (наприклад, FreeBSD ).

Питання не сказало, що $TERMбуло до того, як змінити це xterm. Тут було використано інше опис терміналу, де функція не була видалена.

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