目前,我已经以一种立即在所有会话之间共享命令历史记录的方式设置了zsh。
假设我有一个打开的终端仿真器,其中有两个选项卡,每个选项卡都有一个zsh会话A1和A2。如果我在A1中输入ls -la,然后转到A2并按向上箭头键,我将在命令提示符下看到ls -la。
我想更改它,以便会话之间不会共享命令历史记录,尽管当您开始新会话时,它会从之前的所有会话中获取所有先前的历史记录。
您可能已经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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句