現在実行中のプログラムが標準出力にデータを出力するときに、最後の行までスクロールダウンしないように端末を設定することはできますか?
実行中のプログラムがあり、常にstdoutにデータを出力しているため、ターミナルが更新され、ターミナルは自動的に最後の行までスクロールダウンし、以前に出力されたデータや以前に実行した他のコマンドを読み取れません。
キーボードのCTRL-Sを押すと、スクロールを一時的に防ぐことができます。これにより、CTRL-Qを押すまで出力が一時停止します。これにより、現在画面上にあるものを読み取ることができますが、プログラムの動作方法によってはプログラムの続行を妨げることもあります。
画面が最新の出力にスクロールできないシェル自体の実際の設定は知りませんが、出力をlessにパイプすることで同等の結果を得ることができます。何かのようなもの
my_command | less
使用している端末プログラムによって異なります。この情報は、そのドキュメントで見つけることができるはずです。ほとんどは私が使用しているオリジナルのxterm
に基づいているので、それに基づいて答えます。
既存のxterm
でこれをインタラクティブに行うには、[中マウスを制御]ボタンのメニューを使用できます。 「TTY出力で一番下にスクロールする」のメニューに項目があり、デフォルトで最初にチェックされています。クリックするだけでチェックマークが削除され、xterm
はいつでも一番下にジャンプしなくなります出力があります。
特定のxtermをそのように開始したい場合は、チェックを外して開始するコマンドラインオプション-si
があります。これをすべてのxterm
sのデフォルトにしたい場合は、scrollTtyOutput
リソースを設定できます(Xリソースを設定する場所ならどこでも、Xresource構造体を使用して一部のリソースにのみ適用することができます) xterm
s)。
私はこれらのオプションがすべて存在することを知っていたので、今すぐman xterm
を使用して詳細を取得しました。 UNIXの優れた機能の1つ(大部分はLinuxに続きます)は、すべてのドキュメントがそこにあることです。あなたはそれを見なければなりません。