¿Cómo restaura "man" la pantalla cuando salgo del programa?

18

Si abro una página de manual de un programa como cato ls, imprime (puede que no sea la palabra apropiada) el contenido de la página de manual y cuando presiono q, muestra la pantalla justo antes de invocar el mancomando. ¿Cómo sucede la restauración? ¿Qué borra todo y luego imprime el contenido anterior del shell?

Ejemplo:

[VAR121@Tesla Testing]$  man ls

Salida:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

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

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

Cuando presiono q, la pantalla vuelve a la apariencia predeterminada de los depósitos, como el mensaje que se muestra a continuación.

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

¿Cómo se restaura la pantalla?

VAR121
fuente

Respuestas:

19

"Compensación" y "restaurar" la pantalla es en realidad una función del emulador de terminal que está utilizando ( xterm, gnome-terminal, konsole, screen).

Por defecto, el localizador que manusa es less.

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

Cuando lessse invoca, el emulador de terminal inicia una pantalla alts para mostrar el contenido de la página del manual. Cuando lesssale, la pantalla alts se destruye y el terminal muestra lo que se guardó en el búfer.

Hay una respuesta aquí donde se discute este más allá y cómo mantener programas como el lessde lanzar una altscreen y por lo tanto la limpieza de la pantalla cuando sale. En pocas palabras, podría definir una variable de entorno para que lessno inicie una pantalla alts en la invocación. Si está utilizando bash, colóquelo en ~ / .bashrc:

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

George M
fuente
1
La misma historia con vitambién?
VAR121
3
vim honra la pantalla altscreen en su emulador de terminal. Puede agregar algo como esto a su ~ / .vimrc - "set t_ti = t_te =" para cambiar las capacidades del terminal que utiliza vim.
George M