2010-11-27 9 views
3

Angenommen, ich verwende tmux und verwende "ls", um etwas auf den Bildschirm zu bekommen. Dann gebe ich Vim ein, um eine Datei zu bearbeiten. Nach Beenden von Vim löscht tmux den Text, der sich oberhalb der Bash-Eingabeaufforderung befindet (nicht wie beim Befehl clear, da die Eingabeaufforderung am selben Ort verbleibt).Warum löscht tmux Terminalinhalte beim Editor-Exit?

Gibt es eine Möglichkeit, dieses Verhalten zu verhindern? Ich verwende tmux 1.3 in Terminal.app auf OS X.

Antwort

5

Wenn Ihre Version von tmux diese Option hat, fügen Sie folgende Zeile zu ~/.tmux.conf:

set-window-option -g alternate-screen on 
+0

Nach dem Lesen der Manpage denke ich, dass das mit dem zusammenhängt, was vor sich geht, aber ich habe diese Einstellung versucht und es hat nichts verändert. – soolwan

+0

@soolwan: Was ist dein '$ TERM'? Ist es anders mit vs ohne 'tmux'? Tut 'tput smcup; Schlaf 2; tput rmcup' Schalter Bildschirme und zurück außerhalb 'tmux'? Was ist mit "tmux"? Wenn das in 'tmux' funktioniert (mit der Alt-Bildschirm-Einstellung in meiner Antwort), müssen Sie' vim' anders konfigurieren. Setzen Sie in 'vim'' t_ti? '(Und wieder für t_te) und vergleichen Sie die Ausgabe mit' tput smcup | hexdump -C '(und rmcup). Sie sollten ähnlich sein. –

+0

$ TERM ist xterm-color sowohl innerhalb als auch außerhalb von tmux. "tput smcup; sleep 2; tput rmcup" schaltet Bildschirme außerhalb von tmux wie erwartet um; Innerhalb von tmux wechselt es zwischen Bildschirmen und wenn alles zurückkehrt, wird die Eingabeaufforderung gelöscht. Dies ist das gleiche Verhalten der Redakteure. – soolwan

0

Versuchen Sie dies in Ihrer .vimrc Datei setzen:

set t_ti= t_te= 
+0

Das macht vim beim Beenden nicht klar. Ich möchte vim beim Beenden löschen, aber ich möchte, dass tmux die Bildschirmaktivität nicht löscht, die vor der vim-Sitzung vorhanden war. – soolwan

Verwandte Themen