メイン画面のように単にスクロールするのではなく、実際に画面を消去するコマンドがあります。私のclear
エイリアスは次のとおりです。c
.zshrc
alias c='clear && printf "\e[3J";'
私の質問は:上矢印キーを使用して上にスクロールしたときにこのコマンドが表示されないように、zshコマンド履歴でこのコマンドをどのように維持しますか?
ベストアンサー1
を使用すると、set -o histignorespace
SPC文字で始まるコマンドラインは履歴に挿入されません(以前に入力したコマンドはいつでも呼び出すことができます)。
その場合は、次のようにしてください。
set -o histignorespace
alias c=' printf "\e[H\e[3J"'
最初のコマンドがあるコマンドラインを入力すると、コマンドラインはc
履歴に追加されません。
accept-line
別のアプローチは、ウィジェットに次の項目のみが含まれている場合は、画面と編集バッファを消去するようにウィジェットをオーバーライドすることですc
。
accept-line() case $BUFFER in
(c) printf '\e[H\e[3J'; BUFFER=; zle redisplay;;
(*) zle .accept-line
esac
zle -N accept-line
入力した場合にのみ機能し、c
それがc; something-else
すべてです。 PS2プロンプトで次のように押すと、Enterこれが行われます。
for i do
c