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

Lee*_*var 28 terminal zsh history

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

关于我需要启用/禁用什么设置的任何想法?

pet*_*eth 34

HIST_IGNORE_ALL_DUPS将丢弃命令的所有先前匹配项,当使用历史记录作为您以后所做操作的日志时,这可能会令人困惑:

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

更接近您的需求可能是您的HIST_FIND_NO_DUPS选择:

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

或者也许是HIST_IGNORE_DUPS,但是,正如RichieHH指出的那样,它也导致了对历史的不完整描述:

HIST_IGNORE_DUPS:如果命令行与前一个事件重复,则不要将它们输入到历史列表中。

见:man zshoptions | less -p History

  • HIST_FIND_NO_DUPS 比我认为的更好。 (2认同)
  • Bash:`export HISTCONTROL=ignoredups`。ZSH:`setopt HIST_IGNORE_DUPS` (2认同)