Як "man" відновлює екран, коли я закриваю програму?


18

Якщо я відкрию довідкову сторінку програми на кшталт catабо ls, вона надрукує (можливо, це не відповідне слово) вміст довідкової сторінки, і коли я натискаю q, вона відображає екран так само, як перед тим, як викликати manкоманду. Як відбувається відновлення? Що стирає все, а потім друкує попередній вміст оболонки?

Приклад:

[VAR121@Tesla Testing]$  man ls

Вихід:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

 ............

Коли я натискаю q, екран повертається до зовнішнього вигляду оболонок, наприклад, підказки, показаних нижче.

[VAR121@Tesla Testing]$  man ls
[VAR121@Tesla Testing]$

Як відновлюється екран?

Відповіді:


19

«Виїмка» і «відновлення» екран насправді є функцією емулятора терміналу ви використовуєте ( xterm, gnome-terminal, konsole, screen).

За замовчуванням пейджер, який manвикористовується, є less.

З man 1 man

   -P  pager
          Specify  which pager to use.  This option overrides the 
          MANPAGER environment variable, which in turn overrides 
          the PAGER variable.  By default, man  uses /usr/bin/less -is.

Після lessвиклику емулятором терміналу запускається alccreen для відображення вмісту довідкової сторінки. При lessвиході альтскрін знищується, а термінал відображає те, що було збережено в буфері.

Існує відповідь тут , який говорить про це далі і як зберегти програми , як lessвід запуску в altscreen і , таким чином , очищаючи екран , коли він виходить. У двох словах, ви можете визначити змінну середовища, щоб lessне запускати екран на екрані при виклику. Якщо ви використовуєте bash, помістіть це в ~ / .bashrc:

export MANPAGER="/usr/bin/less -r -X -is"


1
Та ж історія з viтеж?
VAR121

3
vim вшановує високий екран у емуляторі терміналу. Ви можете додати щось подібне до свого ~ / .vimrc - "set t_ti = t_te =", щоб змінити можливості терміналу vim використовує.
Джордж М
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.