Zsh 中的历史记录设置
内容提要
如果您使用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添加时间戳,但不一定有用。
延伸问答
如何在Linux上设置zsh的历史记录?
在Linux上,您需要手动配置历史记录,默认情况下历史记录仅在当前会话中可用,关闭后会丢失。
zsh的历史记录选项有哪些?
zsh提供三个选项:setopt appendhistory、setopt inc_append_history和setopt share_history。
setopt share_history的作用是什么?
setopt share_history不仅写入历史,还读取历史以进行更新,是最佳选择。
如何设置历史文件的路径?
您可以通过配置HISTFILE来设置历史文件的路径,通常为~/.zsh_history。
zsh中如何保存历史记录的行数?
使用SAVEHIST可以设置保存的历史行数,通常可以设置为一千或更多。
在zsh中如何读取历史记录?
在zsh中,您可以使用history命令来读取历史记录,CTRL-R等操作无法使用。