Je nach Terminal / Umgebung hat die folgende Reihenfolge unterschiedliche Auswirkungen:
$ ls
1
2
$ man ls
enter q
Entweder wird der zuletzt angezeigte Manpage-Bildschirm über der aktuellen Eingabeaufforderung angezeigt, oder die ls-Ausgabe und die vorherige Shell-Ausgabe werden wiederhergestellt. Der gleiche Effekt wird z. B. beim Verwenden vim
und anschließenden Anhalten beobachtet , um etwas an der Schale zu tun.
Unter Fedora 19 scheint die Standardeinstellung für den Bildschirm "Keine Wiederherstellung" zu sein. Ein Gnome-Terminal / xterm verwendet standardmäßig "Do-Restore".
Unter Solaris hängt es anscheinend vom verwendeten Terminal / Terminfo-Datenbank ab.
Ich möchte das Wiederherstellungsverhalten zwischen verschiedenen Systemen / Terminals konsistent konfigurieren.
Antworten:
Die Funktion scheint als "alternativer Bildschirm" oder Umschalten zwischen normalem und alternativem Bildschirm bezeichnet zu werden.
Sie können es mit einem xterm erkunden. Geben Sie zum Beispiel
man man
einenxterm
und einen Exit-Mann ein. Jetzt können Sie über Ctrl+ Maus2 (mittlerer Klick) -> 'Alternativbildschirm anzeigen' zum alternativen Bildschirm wechseln. Alternativ können Sie die xterm-Steuersequenzen direkt eingeben , z.Die letzten beiden Befehle funktionieren auch im Gnome-Terminal (wahrscheinlich auch in anderen).
Was passiert, wenn
man
/vi
/less
etc. gestartet wird, ist im Grunde, dass sie einen abstrakten Klarbildbefehl senden. Beim Beenden (oder Anhalten) senden sie einen abstrakten Befehl zum Wiederherstellen des Bildschirms. Wie der Befehl in konkrete Terminalsteuerungssequenzen übersetzt wird, ist in der terminfo- Datenbank definiert.Deaktivieren Sie die alternative Bildschirmumschaltung
Was für alle Terminals funktionieren sollte, ist das Anpassen lokaler Terminfo-Einträge, dh das Entfernen der Zuordnung von abstrakten Lösch- / Wiederherstellungsbildschirmbefehlen.
Sie können dies folgendermaßen tun - für den aktuellen
$TERM
Eintrag (zum Beispiel für das Gnome-Terminal unter Fedora 19):Jetzt können Sie es testen über:
Sie können die obigen Schritte für andere Terminals wiederholen, wenn Sie mehrere verwenden. Wenn alles wie erwartet funktioniert, können Sie
TERM
über Ihre Shell RC-Datei einstellen .Sie können den Terminalnamen auch direkt als Parameter angeben
infocmp
, z.Aktivieren Sie die alternative Bildschirmumschaltung
Einige Terminals unterstützen die alternative Bildschirmumschaltfunktion (z. B. Bildschirm ), deaktivieren sie jedoch standardmäßig .
Denn
screen
Sie können es aktivieren über~/.screenrc
:Wenn Sie sich über ssh per Fernzugriff auf ein Solaris-System anmelden, ist die remote konfigurierte systemweite Terminfo-Datenbank möglicherweise historisch, fehlerhaft oder enthält einige ungewöhnliche / Solaris-spezifische Standardeinstellungen, die nicht mit den Terminals übereinstimmen du rennst ssh rein.
Daher ist es eine Option, die lokale Terminfo-Datenbank einfach von / usr / share / info (auf dem Client) nach
host:~/.terminfo
(auf dem Server) zu kopieren .Falls das kompilierte Terminfo-Format nicht kompatibel ist, können Sie die Einträge auch wie im vorherigen Absatz exportieren / importieren.
Ich habe versucht, mit einer terminfo-db aus einer Cygwin- Installation zu arbeiten und sie direkt auf ein Solaris 10-System zu kopieren.
Wenn Sie eine alternative terminfo-Datenbank für Benutzer freigeben möchten, geben Sie deren Pfad über die
TERMINFO
Umgebungsvariable an.Ignorieren Sie die Kontrollsequenz
Einige Terminals unterstützen das Deaktivieren der Steuersequenz für die alternative Bildschirmumschaltung. Zum Beispiel hat xterm eine Option, gnome-terminal nicht.
Für xterm ist es die X-Ressource , z
Programmspezifische Konfigurationen
Einige Programme verfügen über Konfigurationsdateien, um zu konfigurieren, welche Steuersequenz- / Terminfo-Befehle sie senden. Zum Beispiel
Konfiguriert
less
, dass der Bildschirm nicht gelöscht / wiederhergestellt wird.Denn
vim
du kannst so etwas einschließenin dir
~/.vimrc
.Ich habe keine Option gefunden, wie dieses Verhalten für top konfiguriert werden kann - standardmäßig wird kein Wiederherstellungsbildschirm gesendet.
quelle
smcup
oderrmcup
. In meinem Fall kommen andere Dinge mit ihnen auf die gleiche Linie. Diese anderen Sachen wurden ebenfalls gelöscht. Vielleicht ist so etwass/[sr]mcup=[^,]*,//'
besser.