我正在使用 zsh 并希望历史记录像 bash 中一样。我的 中有以下内容~/.zshrc
:
export FZF_BASE=/usr/bin/fzf
export HISTFILE=$HOME/.histfile
export SAVEHIST=500
export HISTSIZE=500
plugins=(
...
fzf
)
但由于某种原因,根本没有~/.histfile
,为什么不呢?我还缺少什么?
答案1
如上所述在评论中,一旦 shell 终止,zsh
shell 就会将其命令行历史记录保存到 shell 变量引用的文件中,但默认情况下不会在此之前。HISTFILE
因此,在使用 set 终止交互式 shell 之前,您不会期望看到该文件突然出现HISTFILE
。
您可以设置 shell 选项,以便setopt
在每个命令之后将 shell 的历史记录写入文件,例如INC_APPEND_HISTORY
、INC_APPEND_HISTORY_TIME
或SHARE_HISTORY
,但您可能应该在手册中阅读这些以及相关历史记录相关的 shell 选项zshoptions
(man zshoptions
,然后搜索例如HIST
)。
请注意,历史相关的 shell 变量(zshparam
手册中提到的)不是环境变量,因此不应导出它们。
答案2
当HISTFILE
、 inbash
和可能发生更改时zsh
,必须通过设置HISTSIZE
为 0,然后设置为所需值来重新启动历史记录。
HISTSIZE=0
HISTSIZE=500