2010-11-27 8 views
3

私はtmuxを実行していて、 "ls"を使用して画面上に何かを取得しているとします。それから、Vimに入ってファイルを編集します。 Vimを終了すると、tmuxはbashプロンプトの上にあるテキストを消去します(プロンプトが同じ場所にあるのでclearコマンドのようにはなりません)。tmuxはエディタの終了時に端末の内容を消去するのはなぜですか?

この現象を防ぐ方法はありますか?

set t_ti= t_te= 

答えて

5

tmuxのバージョンは、このオプションを持っている場合は、あなたの~/.tmux.confに次の行を追加します。私は、OS Xの

+0

マニュアルページを読んだ後、これは何が起こっているのかと思われますが、私はその設定を試してみて何も変わっていません。 – soolwan

+0

@ソルワン:あなたの '$ TERM'は何ですか? 'tmux'を使わない場合と違いますか? 'tput smcupを実行します。睡眠2; tput rmcup'スイッチ画面を開き、 'tmux'の外側に戻しますか? 'tmux'ではどうでしょうか?もしそれが 'tmux'(私の答えのalt-screen設定で)で動作するならば、あなたは' vim 'を異なって設定する必要があります。 'vim'では、' set t_ti? '(やはりt_te)を行い、出力を 'tput smcup | hexdump -C'(とrmcup)と比較します。彼らは似ているはずです。 –

+0

$ TERMは、tmuxの内側と外側の両方でxterm-colorです。 "tput smcup; sleep 2; tput rmcup"はtmux外の画面を期待通りに切り替えます。 tmux内では画面が切り替わり、上のすべてが返されたときにはプロンプトが消去されます。これはエディタと同じ動作です。 – soolwan

0

あなたの.vimrcファイルでこれを入れてみてくださいにtmuxは1.3 Terminal.appでを使用しています:

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

これは、vimが終了時に明確にならないようにします。私は終了時にvimをクリアしたいが、vmセッションの前にあった画面のアクティビティをtmuxが消去しないようにしたい。 – soolwan