【问题标题】:Always return to beginning of ZSH history after search?搜索后总是返回到 ZSH 历史的开头?
【发布时间】:2021-04-08 20:23:58
【问题描述】:

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)

我分别为up-arrowdown-arrow 使用up-line-or-beginning-searchup-line-or-beginning-searchoh-my-zsh 默认值。我检查了man zshcontribman zshzle,但文档似乎没有解决这种行为。

没有缩短历史的大小(无论如何我都应该这样做),有没有办法让历史搜索总是从头开始(最近的)?

【问题讨论】:

    标签: zsh oh-my-zsh zsh-zle


    【解决方案1】:

    在空行上按 Enter,然后重试。这将重置$HISTNO

    或者,使用zsh-autocomplete’s history menu & history search。它们总是从最近的项目开始。

    【讨论】:

    • 完美,谢谢。这可能对我有用,但可以将其与 precmd 结合使用以获得我描述的行为。
    • 不,那行不通。 precmd 在初始化一个新的命令行之前被调用,所以,只有在执行上一个命令行之后。
    • @LukeAbel 我在答案中添加了另一个选项。请看一看。
    • ?‍♂️ 你是对的 - 我忘了我自己的问题。感谢您的建议。
    猜你喜欢
    • 2015-05-13
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多