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


28

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

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

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シナリオに示されている動作を得るために、どのように設定しますか?

これを簡単に説明することはできません。また、そのような行動を探すキーワードがわからないため、Googleで検索するのも難しいと感じています。さらに詳しく説明する必要がある場合は、教えてください。


あるuser1user2、同じまたは異なるマシン上のアカウント?
-jasonwryan

@jasonwryan同じマシンでのロギングも同じシナリオを示しています。@ warl0ckありがとう。
mtk

1
この動作を強制したいが端末タイプを保持したい場合は、エイリアスvi = "/ usr / bin / vi $ *; clear"を示す.bashrcまたは.profileに行を追加します
Criggie

回答:


24

その動作の理由の1つは、各ユーザーのターミナルの設定です。

例えば:

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

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

TERM = xterm; TERMをエクスポート


+1完全/完全なソリューション。ありがとう!!! そんなに簡単だとは思わなかった。について詳しく説明していただけますTERMか?またはいくつかのリソースリンクを指しますか?これを理解する必要があります。これは、経由で接続する場合にのみ影響しputtyますか?
mtk

端末設定をputtyセッションに指定できますが、ユーザーは環境変数で端末設定を指定できます。TERMは端末タイプを定義します。また、一部は他の機能よりも多くの機能を備えています。たとえば、xtermは色をサポートし、行と列を自動的に更新します。vt100を使用する場合、端末のサイズを変更すると、デフォルトで24行x 80列になり、24x80に固定されることがわかります。このunix.stackexchange.com/questions/43945/…をチェックしてください。それは私よりもうまく説明できるかもしれません。
-BitsOfNix

シェルではなく、ターミナルの動作です。端末エミュレータの設定は、接続に使用するツールが何であっても同じです。違いは、ここで詳細に説明されていますunix.stackexchange.com/questions/4126/...
レオニード

@Leonidは、正確にではなく、puttyを使用すると定義でき、ユーザーがTERMを定義しない場合、接続時に更新されます。ユーザーが定義している場合は、ユーザー環境の設定に優先するツールに関係なく、正しいです。
-BitsOfNix

このソリューションに関するメモ:YMMV。常に「xterm」とは限りません。FreeBSD 10でdmenuを使用してdwm(Dynamic Window Manager)を使用するシナリオ1を取得するには、「rxvt」を使用して端末を偽造する必要がありました。また、〜/ .vimrcファイルに「set term = rxvt」 。
ライダー

18

そのような振る舞いが私を使用から遠ざけた唯一のものですscreen。「スクリーン」ターミナルを使用し、「xterm」に変更しても役に立ちませんでした。

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

altscreen on|off

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

@Fox OPは、彼が使用しているTERMについて何も言及していないので、これは単なる代替答えになります。とにかく、このページは画面の問題をグーグルで検索している最中です。
BartBiczBoży

2
これでうまくいきました!キーワード:「vim quitが視覚的なアーティファクトターミナルを離れる」
ジェイテイラー

0

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

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

設定を保存すると、準備完了です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.