我正在寻找一个设置,这样当我按下向上箭头时,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
参阅详情。