zsh:hist_find_no_dups 是什么意思?

zsh:hist_find_no_dups 是什么意思?
  HIST_FIND_NO_DUPS
         When searching for history entries in the line editor, do not display duplicates of a line previously found, even if  the  duplicates  are  not contiguous.

但是,当我反复使用 Ctrl-p 时,会出现相同的命令。

$ ls
$ pwd
$ ls
$ <Ctrl-p> => ls 
  <Ctrl-p> => pwd
  <Ctrl-p> => ls  again!

zsh 5.0.5 (x86_64-苹果-darwin14.0)

答案1

hist_find_no_dups不保证所有行都是唯一的,您可能需要通过重复的行对进行搜索。

如果你不想有重复的行,那么请查看hist_ignore_all_dups。它将阻止重复的命令出现在你的历史文件中,但它可能会引入意外的间隙 - 如果你正在重复使用部分历史记录,则需要注意这一点。

另一个值得研究的选项是hist_ignore_dups。这可以防止保存连续的重复项。

最后,但并非最不重要的一点是,有hist_save_no_dups(写入历史文件时忽略重复)和,当达到hist_expire_dups_first限制时,它将开始删除重复的命令。$HISTSIZE

答案2

Ctrl-P与向上箭头相同,它允许您访问历史上写入的以前的命令。

HIST_FIND_NO_DUPS产生影响,当你搜索对于以前的命令,按Ctrl+R,它将跳过重复的命令。

相关内容