我想排除一些特定命令保存到 zsh 历史记录中。
例如:无论设置HIST_IGNORE_SPACE
与否,都排除 mpv/mpc 命令保存到 zsh 历史记录中。
我找到了答案这里但当我测试它时它不起作用。
答案1
考虑使用一个钩子函数来在添加到历史文件之前检查命令:
zshaddhistory() {
case ${1%% *} in
(mpv|mpc) return 1;;
esac
return 0;
}
man zshmisc
引用手册页的部分(《钩子函数》):
如果任何钩子函数返回状态 1(或除 2 之外的任何非零值,尽管对于 shell 的未来版本不能保证这一点),则历史记录行将不会被保存,尽管它会在历史记录中徘徊直到下一行被执行,允许您立即重用或编辑它。
如果任何钩子函数返回状态 2,历史行将保存在内部历史列表中,但不会写入历史文件。如果发生冲突,则采用第一个非零状态值。