Answers:
您可能已经INC_APPEND_HISTORY
设定好了。
该INC_APPEND_HISTORY
选项来自man zshoptions
:
此选项的工作方式与APPEND_HISTORY相似,不同之处在于,新的历史记录行会(在输入后立即)添加到$ HISTFILE中,而不是等到shell退出后才逐渐添加。
您想要的选项是APPEND_HISTORY
:
APPEND_HISTORY如果设置此选项,则zsh会话会将其历史记录列表追加到历史记录文件中,而不是替换它。因此,多个并行zsh会话都将按照它们退出的顺序将其历史列表中的新条目添加到历史文件中。当行数比$ SAVEHIST指定的值增加20%时,仍将定期重写文件以修剪文件(另请参见“ HIST SAVE BY COPY”选项)。
你可以阅读有关在这些选项man zshoptions
,man zshall
或在线在这里。
若要设置它们,您~/.zshrc
必须具有:
setopt APPEND_HISTORY
请注意,如果您默认情况下使用的是oh-my-zsh,我相信INC_APPEND_HISTORY
会使用它。我不确定100%确定加载方式,但是如果该oh-my-zsh
选项优先于您设置的加载方式,则可以在其中~/.zshrc
进行调整~/.oh-my-zsh/lib/history.zsh
echo unsetopt INC_APPEND_HISTORY >~/.oh-my-zsh/custom/history.zsh
要添加到接受的答案中,如果您使用oh-my-zsh
,则可能SHARE_HISTORY
默认情况下启用了该选项。
为了在新打开的终端中合并运行中的外壳程序和整个历史记录之间的分隔,您必须注释或删除以下行:
setopt share_history # share command history data
从 ~/.oh-my-zsh/lib/history.zsh
~/.antigen/repos/https-COLON--SLASH--SLASH-github.com-SLASH-robbyrussell-SLASH-oh-my-zsh.git/lib/history.zsh