私はtmuxを実行していて、 "ls"を使用して画面上に何かを取得しているとします。それから、Vimに入ってファイルを編集します。 Vimを終了すると、tmuxはbashプロンプトの上にあるテキストを消去します(プロンプトが同じ場所にあるのでclearコマンドのようにはなりません)。tmuxはエディタの終了時に端末の内容を消去するのはなぜですか?
この現象を防ぐ方法はありますか?
set t_ti= t_te=
私はtmuxを実行していて、 "ls"を使用して画面上に何かを取得しているとします。それから、Vimに入ってファイルを編集します。 Vimを終了すると、tmuxはbashプロンプトの上にあるテキストを消去します(プロンプトが同じ場所にあるのでclearコマンドのようにはなりません)。tmuxはエディタの終了時に端末の内容を消去するのはなぜですか?
この現象を防ぐ方法はありますか?
set t_ti= t_te=
tmux
のバージョンは、このオプションを持っている場合は、あなたの~/.tmux.conf
に次の行を追加します。私は、OS Xの
あなたの.vimrcファイルでこれを入れてみてくださいにtmuxは1.3 Terminal.appでを使用しています:
set-window-option -g alternate-screen on
これは、vimが終了時に明確にならないようにします。私は終了時にvimをクリアしたいが、vmセッションの前にあった画面のアクティビティをtmuxが消去しないようにしたい。 – soolwan
マニュアルページを読んだ後、これは何が起こっているのかと思われますが、私はその設定を試してみて何も変わっていません。 – soolwan
@ソルワン:あなたの '$ TERM'は何ですか? 'tmux'を使わない場合と違いますか? 'tput smcupを実行します。睡眠2; tput rmcup'スイッチ画面を開き、 'tmux'の外側に戻しますか? 'tmux'ではどうでしょうか?もしそれが 'tmux'(私の答えのalt-screen設定で)で動作するならば、あなたは' vim 'を異なって設定する必要があります。 'vim'では、' set t_ti? '(やはりt_te)を行い、出力を 'tput smcup | hexdump -C'(とrmcup)と比較します。彼らは似ているはずです。 –
$ TERMは、tmuxの内側と外側の両方でxterm-colorです。 "tput smcup; sleep 2; tput rmcup"はtmux外の画面を期待通りに切り替えます。 tmux内では画面が切り替わり、上のすべてが返されたときにはプロンプトが消去されます。これはエディタと同じ動作です。 – soolwan