端末スクロールバックバッファをクリアする最も簡単な方法+詳細な説明は何ですか?

端末スクロールバックバッファをクリアする最も簡単な方法+詳細な説明は何ですか?

なぜ面倒?

スクロールバックバッファを消去するのは多くの点で便利です。たとえば、長い出力でいくつかのコマンドを実行し、その出力の先頭にすばやくスクロールしたいとします。スクロールバックバッファがクリアされたら、一番上までスクロールすると完了です。

いくつかの注意:

clear人には命令がありますが、

明らか可能であれば、スクロールバックバッファを含む画面を消去します(拡張「E3」機能が定義されている場合)。

GNOME端末clearからいいえスクロールバックバッファをクリアします。 (ところで「E3」機能とは何ですか?)

またreset、それは消去されますが、それ以上を実行して非常に遅いです(私のシステムでは1秒以上かかり、これは人間にとって目立つ遅延です)。

echo -ne '\ec'またはecho -ne '\033c'仕事ができるものもあります。そして実際にははるかに速いですreset

問題は、\ecシーケンスが何であるか、何をclearするresetのか、そしてなぜ別のコマンドがないのかです。

C-lデフォルトでは、コマンドにバインドされるreadlineのキーシーケンスもありますclear-screen(つまり、シェルコマンドではなくreadlineコマンドを意味します)。このコマンドは何ですか?どのエスケープシーケンスをエクスポートしますか?実際にどのように機能しますか?シェルコマンドを実行しますか?または何をか。同様に、gnome-terminalでは、端末の一番上の行にプロンプ​​トが表示されるまで空の行を吐き出すだけで動作するようです。他の端末エミュレータについてはよくわかりません。これは非常に面倒な行動です。大きな空白の塊でスクロールバックを汚染するため、ますます上にスクロールする必要があります。これはクリーンなソリューションではなく、ハッキングのように感じます。

もう一つの質問は、上記のシーケンスに対するreadlineコマンドがありますか\ec?縛りたいのですC-lいつも画面を消去するときにスクロールバックバッファを消去したいと思います。

もう一つの質問はどうですかただ入力してください目的のタスクを実行するには、端末にこれらのエスケープシーケンスが必要ですか?これにより、他のreadlineコマンドにバインドすることを考える必要はありませんC-l(そのコマンドが存在する場合)。入力Escしようとしましたがc機能しません。

修正する この質問に対する答えは主に次のとおりです。https://unix.stackexchange.com/a/375784/257159。これは、ここに尋ねるほとんどすべての質問を説明する非常に良い答えです。

ベストアンサー1

~からman bash読む行の部分:

   clear-display (M-C-l)
          Clear  the  screen  and,  if possible, the terminal's scrollback buffer, then redraw the current line, leaving the
          current line at the top of the screen.
   clear-screen (C-l)
          Clear the screen, then redraw the current line, leaving the current line at the top of the screen.  With an  argu‐
          ment, refresh the current line without clearing the screen.

Ctrl + Alt + Lを押します。

おすすめ記事