排除特定命令保存到历史记录中

排除特定命令保存到历史记录中

我想排除一些特定命令保存到 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,历史行将保存在内部历史列表中,但不会写入历史文件。如果发生冲突,则采用第一个非零状态值。

相关内容