回答:
HIST_IGNORE_SPACEオプションを使用します。
setopt HIST_IGNORE_SPACE
man zshoptions
HIST_IGNORE_SPACE
行の最初の文字がスペースの場合、または展開されたエイリアスの1つに先頭のスペースが含まれる場合、履歴リストからコマンドラインを削除します。コマンドは、消える前に次のコマンドが入力されるまで内部履歴に残るため、行を簡単に再利用または編集できることに注意してください。別のコマンドを入力せずにすぐに消したい場合は、スペースを入力してReturnキーを押します。
kill -9 $$
現在の端末セッションで発行されたすべてのコマンドが履歴に保存されるのを避けるのは本当に素晴らしいです。
unset HISTFILE
コマンドブロックの前にできます。HISTFILE
後でリセットするか、新しいシェルを開いて、必要なコマンドを履歴に保存する必要があります。
ZSH履歴に追加するものをより細かく制御したい場合は、でzshaddhistory
関数を定義できます.zshrc
。次の定義では、正規表現を使用して無視するパターンを定義しています。
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
man zshopts
下からの動作HIST_IGNORE_SPACE
がまだ存在することに注意してください:
コマンドは、消える前に次のコマンドが入力されるまで内部履歴に残るため、行を簡単に再利用または編集できることに注意してください。
そのため、テストするには、余分なキーを押す必要があります[Enter]
。これにより、の出力とhistory
↑矢印履歴の両方からコマンドが削除されます。