Comment «homme» restaure-t-il l'écran lorsque je quitte le programme?


18

Si j'ouvre une page de manuel d'un programme comme catou ls, il imprime (peut-être pas le mot approprié) le contenu de la page de manuel et lorsque j'appuie q, il affiche l'écran comme avant d'appeler la mancommande. Comment se déroule la restauration? Qu'est-ce qui efface tout et imprime ensuite le contenu précédent de la coque?

Exemple:

[VAR121@Tesla Testing]$  man ls

Production:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

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

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

Lorsque j'appuie q, l'écran revient à l'apparence par défaut des coques, comme l'invite ci-dessous.

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

Comment l'écran est-il restauré?

Réponses:


19

« Compensation » et « restaurer » l'écran est en fait une fonction de l'émulateur de terminal que vous utilisez ( xterm, gnome-terminal, konsole, screen).

Par défaut, le pager qui manutilise est less.

De 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.

Lorsque lessest invoqué, un altscreen est lancé par l'émulateur de terminal pour afficher le contenu de la page de manuel. À la lesssortie, le altscreen est détruit et le terminal affiche ce qui a été enregistré dans le tampon.

Il y a une réponse ici qui en discute plus loin et comment empêcher des programmes comme lessde lancer un altscreen et ainsi d'effacer l'écran quand il se ferme. En un mot, vous pouvez définir une variable d'environnement afin de lessne pas lancer un altscreen lors de l'invocation. Si vous utilisez bash, placez-le dans ~ / .bashrc:

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


1
Même histoire avec viaussi?
VAR121

3
vim respecte l'altscreen de votre émulateur de terminal. Vous pouvez ajouter quelque chose comme ceci à votre ~ / .vimrc - "set t_ti = t_te =" pour changer les capacités du terminal utilisées par vim.
George M
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.