bne*_*eil 45 zsh command-line linux-terminal
在 Bash 中,我知道在命令之前放置一个空格会阻止它被保留在历史记录中,zshell 的等价物是什么?
Dar*_*all 63
使用 HIST_IGNORE_SPACE 选项。
setopt HIST_IGNORE_SPACE
Run Code Online (Sandbox Code Playgroud)
男人 zshoptions
HIST_IGNORE_SPACE
当命令行中的第一个字符是空格时,或者当其中一个扩展别名包含前导空格时,从历史列表中删除命令行。请注意,该命令会保留在内部历史记录中,直到输入下一个命令后它才会消失,从而允许您短暂地重复使用或编辑该行。如果您想在不输入其他命令的情况下使其立即消失,请输入一个空格并按回车键。
小智 7
如果您希望对添加到 ZSH 历史记录的内容进行更精细的控制,您可以zshaddhistory
在.zshrc
. 以下定义使用正则表达式来定义要忽略的模式:
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
Run Code Online (Sandbox Code Playgroud)
请注意,从行为man zshopts
下HIST_IGNORE_SPACE
仍然存在:
请注意,该命令会保留在内部历史记录中,直到输入下一个命令后它才会消失,从而允许您短暂地重复使用或编辑该行。
所以要测试它,你必须点击一个额外的[Enter]
. 这会从 的输出history
以及 ? 箭头历史。
归档时间: |
|
查看次数: |
18633 次 |
最近记录: |