zsh - zsh历史记录太短

  显示原文与译文双语对照的内容

在Bash中运行 history 时,我得到了一个结果( 1000 + ) 。 但是,当我运行 history 时,zsh shell 只得到 15个结果。 这使得zsh历史上的grepping历史。 我的.zshrc 文件包含以下行:


HISTFILE=~/.zhistory


HISTSIZE=SAVEHIST=10000


setopt sharehistory


setopt extendedhistory



如何修复zsh使我的shell 历史更有用?

更新

如果在zsh中调用 history 1,就会得到我的所有历史记录,就像我在Bash中使用 history 一样。 我可以将命令定义为获得相同的结果,但是我想知道为什么 history 和Bash的行为不同。

时间: 原作者:

OP已经在对问题的更新中说明了答案: zsh 相比, historybash 中的行为不同:

简而言之:

    • history 仅列出最近的历史记录条目的 15
    • history 1 列出所有 - 请参见下面。
  • bash的收费:
    • history 列出所有历史条目的

但是,向传递一磅数值操作数的行为也会有所不同:

    • history <n> 显示以 <n> 开始的所有条目因此,history 1 显示所有条目。
    • 注意:history -<n> --显示了最新的<n> 条目,因此默认行为是有效的history -15 )
  • bash的收费:
    • history <n> 显示了最近的条目的收费。
    • history bash不支持清单 from entry entry条目号;你可以使用 fc -l <n>,但是特定条目 <n> 必须存在否则命令将失败。)

可选背景信息:

  • 在zsh中,history 实际上是为提供别名: 查看 man zshbuiltins
    • 有关许多历史相关功能,请参见 man zshall
  • 在bash中,history 是它自己的命令,它的语法与 fc -l 不同
    • 请参阅:man bash
  • bash和zsh支持 fc -l <fromNum> [<toNum>] 要列出给定的历史条目的给定范围范围:
    • bash: 特定条目 <fromNum> 必须存在。
    • zsh: 只要( 显式或者隐含) 范围内至少有 1条输入,命令就会成功。
    • 因此,如果entry通常不再存在,那么 fc -l 1 在zsh中工作,返回所有历史条目,而在bash中通常不使用。
原作者:
...