BashでClearコマンドをCtrl-Lのように動作させることはできますか?

BashでClearコマンドをCtrl-Lのように動作させることはできますか?

clearbashとはかなり違うようですCtrl。以前の端末情報はすべて完全に削除されるため、上にスクロールできません。画面をスクロールすると、カーソルがページ上部にあるため、上にスクロールして前の情報を表示できます。私は-systemを好みます。以前の端末情報をすべて消去するのではなく、実行されるように上書きする方法はありますか?これは大きな問題ではありませんが、エイリアスを使用して私が好む機能を指す方法があるかどうかを好奇心から知りたかったです。LclearCtrlLCtrlLclearCtrlLclearCtrlL

ちなみに、ちょうどPowerShellにもバインディングがあり、同じ方法で実行されることがわかりました。これはCtrlPowerShellLデザイナーCtrlLbashから多くを借りたように見えますが、cmd.exeコンソールにはこの機能はありません。

答え1

以前の端末情報をすべて消去するのではなく、Ctrl-Lを実行するようにClearをオーバーライドする方法はありますか?

alias clear='tput -x clear'

はい、Ctrl-Lbash(mode)でもset -o emacs同じことをします。

または、エスケープを直接接続すると、ほとんどalias clear='printf "\033[H\033[2J"'のターミナルエミュレータで動作し、それを持っているかインストールしたとは想定しませncursesbash

気づく:clearビジーボックスのアプレットはスクロールバックバッファを消去しないため、一部のビジボックスベースのシステム(ほとんどの組み込みLinuxシステムなど)を使用している場合は、特別な作業を行う必要はありません。

答え2

clearターミナルコマンドで、抜粋は次のとおりですman clear

clear 説明は、可能であればスクロールバックバッファを含む画面を消去します(拡張「E3」機能が定義されている場合)。clear環境変数 TERM で指定された端末タイプの環境を見つけて、terminfo データベースから画面を消去する方法を決定します。 clear標準出力に書き込みます。標準出力をファイルにリダイレクトし(クリアが実際に画面を消去するのを防ぎます)、ファイルを画面 cat にリダイレクトしてその時点で消去できます。

Ctrl+lはキーバインディングですreadlineコマンドclear-screenman 3 readline)です。

画面を消去し、現在の行を再描画して画面の上部に残します。引数として使用する場合は、画面を消去せずに現在の行を更新します。


clearreadlineコマンドclear-screenのエイリアスを指定する方法が見つからず、おそらくまったく不可能です。

関連情報