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

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

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

对于我需要启用/禁用哪些设置,您有什么想法吗?

答案1

HIST_IGNORE_ALL_DUPS将会抛弃全部该命令的先前匹配项,当使用历史记录作为您稍后所做操作的日志时,这可能会造成混淆:

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

更符合您需求的可能是以下HIST_FIND_NO_DUPS选项:

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

或者也许是HIST_IGNORE_DUPS,但是,作为里奇值得注意的是,这也导致了历史记录的不完整:

HIST_IGNORE_DUPS:如果命令行是前一个事件的重复,则不要将其输入历史记录列表。

看:man zshoptions | less -p History

答案2

我看不出有任何方法可以真正做到这一点,但如果你设置该HIST_IGNORE_ALL_DUPS选项,则只有命令的最新版本才会保留在历史记录中,从而产生相同的效果。

man zshoptions参阅详情。

相关内容