您如何在 zsh 中的终端之间共享历史记录?

MJB*_*MJB 43 command-line zsh history

如何实现,以便输入的每个命令在每个打开的终端的历史记录中都可见?

打开多个终端时,历史不会共享,即您在一个终端历史中输入的内容不会显示在另一个终端中。考虑 Bash 的替代方案 PROMPT_COMMAND="history -a"(在显示提示之前保存历史记录)。

MJB*_*MJB 52

以下选项将适用:

这些可以在您的.zshrc文件中设置。


?? 要么设置,inc_append_history要么share_history不设置。(见下方评论)

  • share_history启用时,它读取和写入历史文件。
  • inc_append_history启用时,它只能写入历史文件。

bash的相关资料:

  • "SHARE_HISTORY:此选项既从历史文件中导入新命令,也使您键入的命令附加到历史文件中(后者类似于指定 INC_APPEND_HISTORY,**如果此选项有效,则应将其关闭** )” (来自 [manual](http://zsh.sourceforge.net/Doc/Release/Options.html#History) 强调添加)即只有 INC_APPEND_HISTORY 选项会做你想要的。 (7认同)
  • 实际上,仅 SHARE_HISTORY 选项就可以满足您的需求。短语“如果此选项有效,则应关闭”转换为“如果 [SHARE_HISTORY] 选项有效,则应关闭 [INC_APPEND_HISTORY]”。我已经在 Ubuntu Xenial 上的 zsh 5.1.1 上对此进行了测试。 (3认同)

jam*_*ack 6

如果您使用 Robby Russell 的令人敬畏的 OhMyZSH,它将解决这个问题以及更多问题。

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

这包括setopt inc_append_history.

  • shell 中的拼写错误可能会损坏您的整个系统。 (2认同)