In che modo "man" ripristina lo schermo quando esco dal programma?


18

Se apro una pagina man di un programma come cato ls, stampa (potrebbe non essere la parola appropriata) il contenuto della pagina man e quando premo q, mostra lo schermo proprio come prima di invocare il mancomando. Come avviene il ripristino? Cosa cancella tutto e quindi stampa il contenuto precedente della shell?

Esempio:

[VAR121@Tesla Testing]$  man ls

Produzione:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

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

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

Quando premo q, lo schermo ritorna all'aspetto predefinito delle conchiglie, come il prompt mostrato di seguito.

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

Come viene ripristinato lo schermo?

Risposte:


19

"Compensazione" e "ripristinando" lo schermo è in realtà una funzione dell'emulatore terminale utilizzato ( xterm, gnome-terminal, konsole, screen).

Per impostazione predefinita, il cercapersone che manutilizza è less.

A partire dal 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.

Quando lessviene invocato, un emulatore viene lanciato dall'emulatore di terminale per visualizzare il contenuto della pagina man. Quando lessesce, la schermata secondaria viene distrutta e il terminale visualizza ciò che è stato salvato nel buffer.

C'è una risposta qui che ne discute ulteriormente e su come impedire ai programmi lessdi avviare una schermata secondaria e quindi cancellare la schermata quando esce. In poche parole, è possibile definire una variabile di ambiente in modo che lessnon venga avviata una schermata secondaria al momento dell'invocazione. Se stai usando bash, posizionalo in ~ / .bashrc:

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


1
Stessa storia vianche con ?
VAR121

3
vim onora l'altscreen nell'emulatore di terminale. Potresti aggiungere qualcosa del genere al tuo ~ / .vimrc - "set t_ti = t_te =" per cambiare le capacità del terminale che vim usa.
George M,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.