如何实现使得输入的每个命令都在每个打开的终端的历史记录中可见?
当打开多个终端时,历史记录不会共享,即您在一个终端历史记录中输入的内容不会显示在另一个终端中。考虑一下 Bash 的替代方案 PROMPT_COMMAND="history -a"
(在显示提示之前保存历史记录)。
答案1
以下选项适用:
在执行每个命令之前保存它(这与 bash 的历史记录 -a 解决方案不同):
setopt inc_append_history
每次调用历史记录时读取历史文件,以及以下功能
inc_append_history
:setopt share_history
这些可以在您的文件中设置.zshrc
。
⚠️ 要么设置inc_append_history
,share_history
要么不设置。(见下面的评论)
- 启用后
share_history
,它会读取并写入历史文件。 - 启用时
inc_append_history
,它仅写入历史文件。
与bash相关的:是否可以立即写入 .bash_history ?
答案2
如果您使用 Robby Russell 的超棒 OhMyZSH,它将处理这些以及更多问题。
看https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh
包括setopt inc_append_history
。