Verhindern Sie, dass Vim das Terminal nach dem Beenden löscht

15

Wenn ich mache:

$ less file

Und drücken Sie qzum Beenden less, STIL ich den gleichen Text sehen , wie ich auf dem Bildschirm hatte , als lessnoch lief.

Wenn ich es jedoch tue

$ vim file

Und :qmein Terminal ist leer ...

Screenshots meines Terminals nach dem Beenden lessund vim:

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Kann ich das irgendwie verhindern? Dies ist nur auf meinem Linux-System. Mein FreeBSD-System funktioniert tatsächlich wie erwartet (die Verwendung der gleichen Software / Einstellungen TERMmacht xterm-colorfür beide vim -u NONEkeinen Unterschied).

Beispiel für das, was ich gerne hätte:

Bildbeschreibung hier eingeben

Martin Tournoij
quelle

Antworten:

18

Standardmäßig sendet VIM beim Beenden die mit der Option konfigurierte Zeichenfolge t_tean das Host-Terminal, um es anzuweisen, den Bildschirm zu löschen. Um dies zu vermeiden :set t_te=, senden Sie nichts an das Terminal und vermeiden Sie das Löschen des Bildschirms. :help termWeitere Informationen zu Terminalfunktionen finden Sie im Formular.

toro2k
quelle
2

Da Sie ein xterm verwenden, können Sie dessen Haupt- und alternativen Bildschirmpuffer zum Austauschen des Bildschirms verwenden, wie in diesem Abschnitt aus meiner .vimrc

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       

Hinweis: Es ^[handelt sich nicht um wörtlichen Text, sondern um das Escape-Zeichen. Verwenden Sie Ctrl+ vgefolgt von Esc, um es einzufügen.

Diese vim-Befehle fügen die relevanten Befehle hinzu, die im Linux-Eintrag terminfo fehlen können. Mehr Infos unter

:help xterm-screens
Jalanb
quelle
Hm, scheint immer noch nichts zu tun? Es funktioniert so, als ob ich es benutze set t_te=, aber es soll mehr bewirken, denke ich?
Martin Tournoij