私の問題は簡単ですが、簡単に設定/説明するのは難しいです。
別のアカウントで複数のUnixコンピュータにログインします。 vimでテキストファイルを編集すると、user1
2つの異なる内容が表示されます。user2
ユーザー1
と入力すると、vim filename
vimはファイルを開いて編集します。閉じると、ファイルの全文が消え、以前に存在していた端末コマンド/出力が表示されます。
ユーザー2
と入力すると、vim filename
vimはファイルを開いて編集します。閉じるとvim
、まだディスプレイにあったときにディスプレイにあったファイル部分と、以前のすべての端末ディスプレイが上にスクロールします。ファイルに1行しかないにもかかわらず、vimを終了すると、ディスプレイに最初の行と他のすべての内容が表示され、~
画面の下部にコマンドプロンプトが表示されます。
詳細
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:08:36)
2人のユーザーのファイルを比較してvimrc
すべての設定を知っていますが、この動作に関連する設定/構成が見つかりませんでした。
この動作はシェル構成に関連していますか?user1
シナリオに示されている動作を取得するには、これらの項目をどのように設定する必要がありますか?
この動作を見つけるためにどのキーワードを使用するべきかわからないので、これを簡単に説明することはできず、Googleで検索するのは困難です。追加の説明が必要な場合はお知らせください。
答え1
この動作の理由の1つは、ユーザー固有の端末設定によるものです。
たとえば、
- ユーザー1はTERM =を使用しています。xterm、この場合、vimを終了すると端末が消去されます。
- ユーザー2はTERM =を使用しています。VT100、この場合、vimを終了しても端末は消去されません。
user1が使用する端末を確認し、echo $TERM
user2にも同じ端末を設定します。バッシュの場合:
用語=xterm;エクスポート用語
答え2
これは私がそれを使うのを防ぐ唯一のことですscreen
。 「screen」端末を使用して「xterm」に変更しても役に立ちません。
altscreen on
~/.screenrc にオプションを追加すると問題が解決しました。画面マニュアルから:
altscreen on|off
onに設定すると、xtermと同様に仮想端末で「代替画面」サポートが有効になります。初期設定は「オフ」です。
答え3
このオプションをすべて試しましたが、結果は期待したものとは異なります。!clear
フルスクリーンがクリアされ、以前のbashコマンドは残りません。
簡単で正しい解決策は、接続 - >データの下のパテ設定で、端末タイプの文字列を端末の詳細に設定し、端末のxterm
速度を端末の詳細に設定することです。38400,38400
設定を保存してください。
答え4
私の場合、TERM設定は両方のシステムで同じでしたが、システムの1つのvim設定はt_te
システム全体のvimrc設定とは異なりました。
解決策はここにあります:https://vi.stackexchange.com/questions/432/prevent-vim-from-clearing-the-terminal-after-exit
つまり、右:set t_te=
あなたの~/.vimrc
。