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
,它将跳过重复的命令。