web-dev-qa-db-ja.com

終了後にvimテキストを表示しないようにbashディスプレイを設定するにはどうすればよいですか?

私の質問は単純ですが、簡単に組み立てたり説明したりするのが難しいと感じています。

異なるアカウントでいくつかのUnixボックスにログインします。 vimでテキストファイルを編集しているときに、user1user2の2つの異なるものが表示されます

user1

vim filenameと入力すると、vimが開いてファイルを編集します。それを閉じると、ファイルからの完全なテキストがなくなり、以前存在していたTeminalsのコマンド/出力が表示されます。

user2

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)

両方のユーザーのvimrcファイルを比較しましたが、すべての設定を認識しており、この動作に関連する設定/構成は見つかりません。

この動作はシェル構成に関連していますか? user1シナリオに示すような動作が得られるように、どうやって設定するのですか?

これを簡単に説明することはできません。また、そのような動作を探すためのキーワードがわからないため、グーグルで検索することも困難です。さらに詳しく説明する必要がある場合はお知らせください。

30
mtk

この動作の理由の1つは、各ユーザーの端末の設定です。

例えば:

  • User1はTERM = xtermを使用しています。この場合、vimを終了するとターミナルがクリアされます。
  • User2はTERM = vt1を使用しています。この場合、vimを終了しても端末はクリアされません。

User1がecho $TERMで使用している端末を確認し、user2にも同じように設定します。 bashの場合:

TERM = xterm;輸出条件

24
BitsOfNix

そのような振る舞いは、screenを使用しないようにする唯一のことでした。 「screen」ターミナルを使用しており、「xterm」に変更しても効果がありませんでした。

〜/ .screenrcにaltscreen onオプションを追加することで解決しました。画面のマニュアルから:

altscreen on|off

If set to on, "alternate screen" support is enabled in virtual terminals, just like in xterm.  Initial setting is `off'.
18
BartBiczBoży

これらのオプションをすべて試しましたが、期待した結果が得られませんでした。 !clearは画面全体をクリアし、以前のbashコマンドを残しません。

シンプルで正しい解決策は、[接続]-> [データ]のPuTTY設定の[ターミナルの詳細]で、ターミナルタイプ文字列をxtermに設定し、ターミナル速度を38400,38400に設定することです。

設定を保存すれば準備完了です。

1
Vinaya Rajanna