我已经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 选项)。