So lassen Sie die Shell nach dem Beenden eines Vollbildprozesses wie Vim zur vorherigen Zeile zurückkehren

So lassen Sie die Shell nach dem Beenden eines Vollbildprozesses wie Vim zur vorherigen Zeile zurückkehren

Ich verbinde mich mitZ-Schaleauf einem Red Hat Enterprise Linux 6.2 Rechner überKitt. Wenn ich einen Vollbildprozess beende, z. B. Vim und weniger, beginnt die Shell-Eingabeaufforderung in der Unix-Shell mit der letzten Zeile des Bildschirms. Der obige Bildschirm zeigt noch den Kontext dieses Prozesses, sodass ich alles verloren habe, was die Shell angezeigt hat, bevor ich diesen Prozess geöffnet habe.

Dies passiert nicht auf meiner eigenen Ubuntu-Box, wo ich nach dem Beenden eines Prozesses zur Zeile unter dem zuletzt eingegebenen Befehl zurückkehre.

Welche Optionen kann ich ändern (vielleicht in zshrc?), damit es sich wie meine Ubuntu-Box verhält?

Antwort1

Ich habe dieses Problem auch gesehen. Überprüfen Sie Ihre PuTTY-Einstellungen unter Terminal->Funktionen. Wenn „Umschalten auf alternativen Terminalbildschirm deaktivieren“ aktiviert ist, deaktivieren Sie es. (Alle meine Einstellungen auf dieser Seite sind deaktiviert.) Die Hilfe zu dieser Option sieht vielversprechend aus.

Andernfallsdiese SeiteIch habe beim Googeln einige Ideen gefunden. Vielleicht können Sie einige Terminfo-Sachen einstellen, damit es richtig funktioniert.

Antwort2

Nachdem ich genau dieses Problem vor langer Zeit behoben hatte, stieß ich auf ein ähnliches Problem, bei dem Vim dieses Problem nicht hatte, aber lesses hatte. Dies betraf alle Programme, die lessauch verwenden, wie man. Die Ursache, so fand ich heraus, war die LESSUmgebungsvariable, die Argumente auflistet, die automatisch übergeben werden, lesswenn sie aufgerufen wird. Die Option darin, LESSdie dies verursachte, war -X:

-Xoder--no-init

Deaktiviert das Senden der Termcap-Initialisierungs- und Deinitialisierungszeichenfolgen an das Terminal. Dies ist manchmal wünschenswert, wenn die Deinitialisierungszeichenfolge etwas Unnötiges bewirkt, wie z. B. das Löschen des Bildschirms.

Ich habe auch gelernt vonUnix & Linux – „ less --quit-if-one-screenohne --no-init-Xdass, wenn Sie / deaktivieren , Sie auch / --no-initdeaktivieren müssen (sofern Sie es eingestellt haben).-F--quit-if-one-screen

Um zu beheben less, dass Ihr Bildschirm beim Beenden immer wiederhergestellt wird, ändern Sie den Wert von LESSin der entsprechenden Shell-Initialisierungsdatei. Dies gilt .bashrcfür Bash, .zshenvfür Zsh und .config/fish/config.fishfür Fish. Fügen Sie dieser Datei den Befehl export LESS='<all the flags you want, without -X or -F>'oder set -gx LESS <flags>für Fish hinzu. Sie können vorher ausführen, um die vorhandenen Flags anzuzeigen, die in Ihre / -Anweisung echo $LESSkopiert werden sollen .exportset

Antwort3

Ich habe es herausgefunden! Alles, was ich tun muss, ist einzustellen $TERM. xtermFrüher war eslinux

export TERM=xterm 

Danke für den Link und die Hinweise, David!

verwandte Informationen