zsh 历史记录未立即同步

zsh 历史记录未立即同步

我已经zsh 5.7.1 (x86_64-apple-darwin19.0.0)并使用 iterm2,如果它与以下 zshrc 有所不同:

HISTFILE=~/.zhistory
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory

如果我输入任何命令,文件 ~/.zhistory 都不会填充。仅当我退出 zsh 时才会附加该文件:

echo r3d3
cat ~/.zhistory |grep r3d3 # shows nothing
zsh
echo r2d2
exit
cat ~/.zhistory |grep r2d2 # only this way it will print r2d2

这使得无法使用 hstr 之类的命令。如果终端崩溃,我就会丢失历史记录。

答案1

setopt appendhistory在您的 .zshrc 中用替换setopt incappendhistory

man zshoptions

INC_APPEND_HISTORY

此选项的工作方式与 APPEND_HISTORY 类似,不同之处在于新的历史记录行会逐渐添加到 $HISTFILE(一旦输入),而不是等到 shell 退出。当行数增长到超过 $SAVEHIST 指定的值的 20% 时,仍会定期重写文件以对其进行修剪(另请参阅 HIST_SAVE_BY_COPY 选项)。

相关内容