web-dev-qa-db-ja.com

GNU vim、lessなどで画面をクリアするexit

私はscreenに非常に慣れていませんが、インターネットで見つけたさまざまな推奨事項に従って〜/ .screenrcファイルを構成しました。問題が1つありますが、非常に簡単に解決できると確信しています。 termcap設定だと思います。

Less、vim、top、またはその他のプログラムをスタンドアロンbash(Mac OSX 10.6)で使用した後、これらのプログラムを終了すると、ターミナルのバッファーがクリアされ、現在のコマンドラインの上の行が、直前に入力したコマンドになります。
しかし、画面では、これらのプログラムのいずれかを終了すると、画面バッファーがクリア/更新されず、そのプログラム内で何を表示していたかが表示されます。

例えばスタンドアロンbash(画面なし):-

hostname:~ auser$ vim afile 
[do stuff in file, then :q to exit]

終了すると、次のようになります。

hostname:~ auser$ vim afile 
hostname:~ auser$

しかし画面では:-

bash-3.2$ vim afile
[do stuff in file, then :q to exit]

終了すると、次の画面全体が表示されます。-

~  # [Empty lines in vim are represented by these tilda characters. ]
...
~  # [ Every line on the screen is one of these tildas ]
bash-3.2$   # [ This is the bottom line in the terminal ]

それが何らかの意味をなすといいのですが。どれも&すべてが大歓迎です! TIA

7
Alex Leach

答えは、使用している「実際の」端末と、screenを介してアプリケーションに提示される端末の両方の端末機能にあります。 screenを介して端末I/Oを実行するアプリケーションは、タイプscreenの端末を参照してください。 「実際の」端末は、xtermからvt100までの何でもかまいません。 (調べるには、printenv TERMまたは同等のものを使用してください。)

vimlessなどのTUIアプリケーションは、通信している端末が可能なものに合わせて動作を調整します。この答えは、terminfoメカニズムのメカニズムの詳細な説明、またはvimlessなどのプログラムの使用方法のメカニズムには短すぎます。それの。このようなものに関する本が全部あります。非常に簡単な説明として、「実際の」端末は、screen端末にはない機能を宣伝しています。

さらに、もちろん、これはSuperUserですでに詳細に回答されています here および here および here

6
JdeBP

altscreen on in ~/.screenrcまたは Control+a:altscreen +Return

6
Bryce Guinta