问题描述
ZSH 历史搜索非常有用,但我对它的一个缺点是它将您的“历史指针”移动到您上次搜索的任何位置。如果我正在输入一个通用命令,然后在几周前出现在我的历史记录中的某个位置,这会很烦人:
> ls foo/bar/[up arrow]
> ls foo/bar/baz/weeks/ago #(whoops!)
> [ctrl + u] #(clear it out,start over)
> [up arrow] #(try again...)
> ls more/weeks/ago #(search starts from that weeks-ago point)
我分别将 oh-my-zsh
和 up-line-or-beginning-search
的 up-line-or-beginning-search
默认值用于 up-arrow
和 down-arrow
。我已经检查了 man zshcontrib
和 man zshzle
,但文档似乎没有解决这种行为。
除了缩短历史的大小(无论如何我应该做的事情),有没有办法让历史搜索总是从头开始(最近的)?
解决方法
在空行上按 Enter 再试一次。这将重置 $HISTNO
。
或者,使用 zsh-autocomplete
’s history menu & history search。它们总是从最近的项目开始。