これは、端末が代替画面バッファーを使用していることを意味します。スクロールバックログにスクロールするメイン画面とそうでない代替画面があります。top、less、emacs、vim、screenなどの「フルスクリーン」または「スクリーン指向」プログラムは、デフォルトで端末を代替画面に切り替えます。
各画面には、独自のコンテンツと状態があります。代替画面を使用すると、プログラムがディスプレイ全体を引き継ぎ、メイン画面に戻ることにより、終了時に以前の内容を復元できます。
Mac OS X Lion 10.7以降、ターミナルには、手動で画面を切り替えるために使用できるメニュー項目があります。
表示>代替画面の表示/非表示
これは主に、「全画面表示」プログラムの終了後に代替画面からテキストを表示またはコピーできるようにするために提供されています。Xtermにも同様のコマンドがあります。
また、たとえば出力をスクロールバックログに出力するかどうかを制御するために、特定の画面を使用するようにプログラムを手動で強制するためにも使用できます。ただし、明示的に代替画面に切り替えるプログラムを現在使用している場合、プログラムの実行中にメイン画面に強制すると、混乱したり予期しない結果が生じる可能性があるため、注意して使用してください。
プログラムによっては、代わりにメイン画面を使用するように設定するためのコマンドライン引数またはその他の手段があります。例えば、less -X
。
一部のterminfoエントリは、代替画面の使用を抑制するように特別に設計されていますxterm1
。TERM=xterm1 emacs
メイン画面でEmacsを実行します。xterm1
永続的に使用することはお勧めしません。Lionのデフォルトと比較して、他の多くの便利な機能が無効になるためですxterm-256color
。
tput
コマンドを使用して画面を切り替えて、シェルまたはスクリプト内からエスケープシーケンスを発行することもできます。tput smcup
代替画面にtput rmcup
切り替え、メイン画面に戻ります。
現在実行中のプログラムを確認するには、ターミナルウィンドウまたはタブタイトルに表示されているプログラム名を調べるか、インスペクターウィンドウ(シェル>インスペクターを表示)を見てください。インスペクタのリストの最後のプロセスは、(通常)画面を使用している現在のプログラムです。これが、代わりにメイン画面を使用するように設定する必要があるものです。