Wie stellt man den Bildschirm wieder her, wenn ich das Programm beende?

18

Wenn ich eine Manpage eines Programms wie catoder öffne ls, wird der Inhalt der Manpage gedruckt (möglicherweise nicht das richtige Wort), und wenn ich drücke q, wird der Bildschirm wie vor dem Aufrufen des manBefehls angezeigt . Wie erfolgt die Wiederherstellung? Was löscht alles und druckt dann den vorherigen Inhalt der Shell?

Beispiel:

[VAR121@Tesla Testing]$  man ls

Ausgabe:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

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

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

Wenn ich drücke q, kehrt der Bildschirm zur Standarddarstellung der Muschel zurück, z. B. der unten gezeigten Eingabeaufforderung.

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

Wie wird der Bildschirm wiederhergestellt?

VAR121
quelle

Antworten:

19

„Clearing“ und „Wiederherstellung“ der Bildschirm ist eigentlich eine Funktion des Terminal - Emulator Sie verwenden ( xterm, gnome-terminal, konsole, screen).

Der standardmäßig verwendete Pager manist less.

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

Beim lessAufrufen wird vom Terminalemulator ein Altscreen gestartet, um den Inhalt der Manpage anzuzeigen. Beim lessBeenden wird der Altscreen zerstört und das Terminal zeigt an, was im Puffer gespeichert wurde.

Hier gibt es eine Antwort , die dies weiter erläutert und wie man Programme lessdavon abhält, einen Altscreen zu starten und damit den Bildschirm beim Beenden zu löschen. lessKurz gesagt, Sie können eine Umgebungsvariable definieren, die beim Aufruf keinen Altscreen startet. Wenn Sie bash verwenden, platzieren Sie dies in ~ / .bashrc:

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

George M
quelle
1
Gleiche Geschichte mit viauch?
VAR121,
3
vim erkennt den altscreen in Ihrem Terminalemulator. Sie können Ihrer ~ / .vimrc - "set t_ti = t_te =" so etwas hinzufügen, um die von vim verwendeten Terminalfunktionen zu ändern.
George M