Bashエイリアスでキーボードショートカットをエミュレートする方法は?

Bashエイリアスでキーボードショートカットをエミュレートする方法は?

たとえば、私のbashエイリアスの1つは次のとおりです。

alias p='clear;ls -lt;pwd;'

clear不要な履歴も削除しました。一時的に画面を消したいです。

Ctrl+Lしかし、まさに私が望んでいたものです。私のエイリアスでどのように使用できますか?

答え1

clear履歴と端末が消去される場合は、それを実行する関数、エイリアス、またはスクリプトが必要です。それがtype -a clearあなたに何を教えるかを見てください。

端末をクリーンアップする別の方法は、端末を使用して元々tput clear実行する必要がある作業とまったく同じことを実行することです。clearまた、直接エスケープシーケンス(xtermなど)を使用してこれを実行することもできますが、これは端末ごとに異なる場合があります(gnome-terminal、PuTTYなどのようにxtermをエミュレートするすべての端末で動作する必要があります)。printf '\e[H\e[2J'

答え2

あなたが要求するのは、通常bashでreadlineコマンドを実行することです(zshと同じか、またはzle -U $key_sequencezle $widget $arguments[@]。私が知る限り、これはbashでは不可能です。

clearただし、この特定のケースでは、実行と入力Ctrl+L(readlineコマンド)clear-screenの間に違いはありません。

関連情報