zsh,向上箭头仅重复唯一命令?


21

我正在寻找一个可以使用的设置,以便当我按下向上箭头时,zsh显示我最近编辑的命令。问题是,我只想要唯一的命令。当前,如果我键入echo "hello world"50次,则必须输入echo命令之前按向上箭头50次以获取我使用的命令。至少可以说这很烦人。

对我需要启用/禁用什么设置有任何想法?

Answers:


23

HIST_IGNORE_ALL_DUPS会丢弃该命令的所有先前匹配项,将历史记录用作以后的记录时会造成混淆。

可能HIST_IGNORE_DUPS甚至更适合您的需求HIST_FIND_NO_DUPS

man zshoptions | less -p History

HIST_FIND_NO_DUPS:在行编辑器中搜索历史记录条目时,即使重复项不是连续的,也不要显示先前找到的行的重复项。

HIST_IGNORE_ALL_DUPS:如果添加到历史记录列表的新命令行与较旧的命令重复,则较旧的命令将从列表中删除(即使它不是先前的事件)。

HIST_IGNORE_DUPS:如果命令行与上一个事件重复,则不要在历史列表中输入命令行。


1
我认为HIST_FIND_NO_DUPS比我的答案更好。
Mikel

3

我看不到有什么方法可以真正做到这一点,但是,如果您设置了该HIST_IGNORE_ALL_DUPS选项,则历史中仅会保留命令的最新版本,从而产生相同的效果。

有关man zshoptions详细信息,请参见。


很棒!除非我缺少任何东西,否则这正是我想要的东西:)
Lee Olayvar 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.