是否可以不在 tmux 中与 zsh 共享 panes/windows 之间的历史记录?

Is it possible to not share history between panes/windows in tmux with zsh?

直到最近我一直在使用 bash 和 tmux。 Bash 的行为与我预期的一样,历史记录保存在每个单独的窗格中,并且不在窗格之间共享。然而,在 zsh 中,窗格中的历史记录默认为 shared。有没有办法覆盖 zsh 中的默认值,以便在 tmux 中使用时不共享它们?

Tmux 应该与此无关,真的。因此,让我们专注于您的 Zsh 设置。

你必须跳过一些障碍才能让历史在 运行 Zshs 之间实时共享,所以你看到这个是令人惊讶的。你做了什么设置来控制你的 Zsh 历史? 运行这个看你的设置:

setopt |grep hist

对于不立即保存历史记录,您需要:

setopt noincappendhistory
setopt nosharehistory

您可以将其放入 ~/.zshrc。您可能需要注销 运行 shell 以确保您的新设置生效。

有关所有与历史相关的 Zsh 选项的信息,请参阅 man 1 zshoptions 并查找几页中的“历史”部分。请注意,还有一些环境变量会影响历史(SAVEHISTORY, HISTFILE, HISTFILEIGNORE, HISTSIE, HISTFILESIZE).