iTerm2(版本 3):每个标签的个人历史记录?

Ala*_* H. 47 terminal command-line iterm2

我正在使用 iTerm2(版本 3)并且喜欢它。但是它已经做了一段时间真正令人讨厌的事情是命令历史记录在选项卡之间共享。例如,在您的第一个选项卡中,运行 commandfoo和 command bar,然后转到您的第二个选项卡并运行say Hello,然后返回到第一个选项卡;我希望并期望向上箭头建议bar然后foo,但它会建议say Hello.

有没有办法纠正这种行为?

har*_*ymc 78

如果您使用的是 zsh,请将这两行附加到 .zshrc

unsetopt inc_append_history
unsetopt share_history
Run Code Online (Sandbox Code Playgroud)

来自 zshoptions(1) - Linux 手册页

INC_APPEND_HISTORY

此选项的工作方式与 APPEND_HISTORY 类似,不同之处在于新的历史行会以增量方式添加到 $HISTFILE 中(一旦输入),而不是等到 shell 退出。

SHARE_HISTORY

此选项既从历史文件中导入新命令,也使您键入的命令附加到历史文件中(后者类似于指定 INC_APPEND_HISTORY)。

海报表明,这正是他正在寻找的选项:

APPEND_HISTORY

如果设置了这个,zsh 会话会将它们的历史列表附加到历史文件中,而不是替换它。因此,多个并行的 zsh 会话都将按照它们退出的顺序将其历史列表中的新条目添加到历史文件中。

  • 有人给这个人加薪! (3认同)
  • 确保将此 ^ 放在此行 `source $ZSH/oh-my-zsh.sh` 之后,否则,这些选项将被覆盖 (3认同)

est*_*ani 9

harrymc 完美答案的额外信息。

这不是 Iterm2,而是 zsh 的一项功能,如果您使用oh-my-zsh,它会默认激活

(参见:https : //github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh

所以把这些放在你的source $ZSH/oh-my-zsh.sh.zshrc文件之后(见 harrymc 的回答)

unsetopt inc_append_history
unsetopt share_history
Run Code Online (Sandbox Code Playgroud)