zsh 中不保存历史记录

zsh 中不保存历史记录

我正在使用 zsh 并希望历史记录像 bash 中一样。我的 中有以下内容~/.zshrc

export FZF_BASE=/usr/bin/fzf
export HISTFILE=$HOME/.histfile
export SAVEHIST=500
export HISTSIZE=500
plugins=(
...
fzf
)

但由于某种原因,根本没有~/.histfile,为什么不呢?我还缺少什么?

答案1

如上所述在评论中,一旦 shell 终止,zshshell 就会将其命令行历史记录保存到 shell 变量引用的文件中,但默认情况下不会在此之前。HISTFILE因此,在使用 set 终止交互式 shell 之前,您不会期望看到该文件突然出现HISTFILE

您可以设置 shell 选项,以便setopt在每个命令之后将 shell 的历史记录写入文件,例如INC_APPEND_HISTORYINC_APPEND_HISTORY_TIMESHARE_HISTORY,但您可能应该在手册中阅读这些以及相关历史记录相关的 shell 选项zshoptionsman zshoptions,然后搜索例如HIST)。

请注意,历史相关的 shell 变量(zshparam手册中提到的)不是环境变量,因此不应导出它们。

答案2

HISTFILE、 inbash和可能发生更改时zsh,必须通过设置HISTSIZE为 0,然后设置为所需值来重新启动历史记录。

HISTSIZE=0
HISTSIZE=500

相关内容