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
einen xterm
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.
$ echo -e '\033[?47h' # alternate screen
$ echo -e '\033[?47l' # normal screen
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):
$ echo $TERM
xterm-256color
$ infocmp -1 > xterm-256color
$ sed 's/^\(xterm-256color\)|/\1-na|/ ; /smcup\|rmcup/d ' \
xterm-256color > xterm-256color-na
$ diff -u xterm-256color*
--- xterm-256color 2013-08-04 16:33:52.041393461 +0200
+++ xterm-256color-na 2013-08-04 16:36:56.829930520 +0200
@@ -1,5 +1,5 @@
# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-256color
-xterm-256color|xterm with 256 colors,
+xterm-256color-na|xterm with 256 colors,
am,
bce,
ccc,
@@ -155,7 +155,6 @@
rin=\E[%p1%dT,
rmacs=\E(B,
rmam=\E[?7l,
- rmcup=\E[?1049l,
rmir=\E[4l,
rmkx=\E[?1l\E>,
rmm=\E[?1034l,
@@ -170,7 +169,6 @@
sgr0=\E(B\E[m,
smacs=\E(0,
smam=\E[?7h,
- smcup=\E[?1049h,
smir=\E[4h,
smkx=\E[?1h\E=,
smm=\E[?1034h,
$ tic xterm-256color-na # loads the file to $HOME/.terminfo
$ find ~/.terminfo -type f
$ HOME/.terminfo/x/xterm-256color-na
Jetzt können Sie es testen über:
$ TERM=xterm-256color-na man man # and then hit q
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.
$ infocmp -1 screen > screen
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
:
$ cat ~/.screenrc
altscreen
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
XTerm*titeInhibit: true
Programmspezifische Konfigurationen
Einige Programme verfügen über Konfigurationsdateien, um zu konfigurieren, welche Steuersequenz- / Terminfo-Befehle sie senden. Zum Beispiel
$ LESS=X less foo
Konfiguriert less
, dass der Bildschirm nicht gelöscht / wiederhergestellt wird.
Denn vim
du kannst so etwas einschließen
set t_ti= t_te=
in dir ~/.vimrc
.
Ich habe keine Option gefunden, wie dieses Verhalten für top konfiguriert werden kann - standardmäßig wird kein Wiederherstellungsbildschirm gesendet.