是否有可能不在tmux与zsh之间的窗格/窗口之间共享历史记录?

Hri*_*nov 8 zsh tmux

直到最近我一直在使用tmux bash.Bash表现得像我期望的那样表现,其中历史记录保存在每个单独的窗格中,并且不在窗格之间共享.但是它看起来像在zsh中默认是为了共享窗格中的历史记录.有没有办法覆盖zsh中的默认值,以便在tmux中使用时不会共享它们?

Mic*_*ott 17

Tmux应该与此无关,真的.所以让我们关注你的Zsh设置.

你必须跳过一些箍来让历史记录在运行Zshs之间实时共享,所以你看到这一点很令人惊讶.您为控制Zsh历史记录做了哪些设置?运行此命令以查看您的设置:

setopt |grep hist
Run Code Online (Sandbox Code Playgroud)

为了立即保存历史记录,您需要:

setopt noincappendhistory
setopt nosharehistory
Run Code Online (Sandbox Code Playgroud)

你可以把它放进你的~/.zshrc.您可能希望注销正在运行的shell以确保进行新设置.

有关所有历史相关岩组选项的信息,请man 1 zshoptions看看"历史"一节中几页.需要注意的是,也有一些环境变量影响的历史(SAVEHISTORY,HISTFILE,HISTFILEIGNORE,HISTSIE,HISTFILESIZE).

  • 谢谢,这似乎为我解决了这个问题,我实际上正在使用 oh-my-zsh 和 zsh 语法突出显示。看起来当您导入这些内容时,“sharehistory”就会打开,并且在 .zshrc 中禁用它是正确的。 (4认同)
  • 确保未设置`SHARE_HISTORY`(`setopt nosharehistory`)就足够了.问题不是每个命令都会立即附加到历史文件中(与`INC_APPEND_HISTORY`一样),但是命令也是在shell会话期间(而不仅仅是在开头)从历史文件中导入的,这只发生在`SHARE_HISTORY `. (2认同)