Zsh 中的历史记录设置
💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
如果您使用zsh,可能已经将其与oh-my-zsh捆绑在一起,后者在zsh配置下做了很多工作。但是,当我切换到starship时,我花了一些时间才弄清楚如何在没有oh-my-zsh的情况下正确设置zsh的历史记录。如果您使用的是MacOS,您会注意到一切仍然正常,这是因为/etc/zshrc中有一个系统范围的历史记录设置。但是如果您使用的是Linux,您需要自己设置。没有任何配置,命令历史记录只会在当前会话中可用,并且在关闭会话后将丢失。为了获得更好的体验,有三个选项:setopt appendhistory、setopt inc_append_history和setopt share_history。除了上述选项之外,您还需要添加一些其他配置:HISTFILE和SAVEHIST。
🎯
关键要点
- 使用zsh时,通常与oh-my-zsh捆绑在一起,但切换到starship后需要重新配置历史记录。
- 在MacOS上,历史记录设置在/etc/zshrc中,Linux用户需要自行设置。
- 没有配置时,命令历史记录仅在当前会话中可用,关闭会话后将丢失。
- 为了更好的体验,可以选择三个选项:setopt appendhistory、setopt inc_append_history和setopt share_history。
- setopt appendhistory:会话历史记录在关闭时追加到历史文件末尾。
- setopt inc_append_history:执行的命令立即写入历史文件,但当前会话无法访问其他会话的历史。
- setopt share_history:除了写入历史外,还读取历史以进行更新,是最佳选择。
- 使用历史命令读取历史记录,CTRL-R等操作无法使用。
- 需要添加的其他配置包括HISTFILE(历史文件路径)和SAVEHIST(保存的历史行数)。
- HISTSIZE:内存中保留的历史行数,通常与SAVEHIST相同。
- 可以使用setopt extendedhistory和HISTTIMEFORMAT添加时间戳,但不一定有用。
➡️