如何在打开 tmux 会话时移植我当前的 bash 历史记录?

如何在打开 tmux 会话时移植我当前的 bash 历史记录?

我经常发现自己处于这种情况:

  • 我开始在终端上做一些事情。
  • 我需要更多的终端空间,所以我打开了tmux
  • 历史记录消失了,甚至我想要在 tmux 中运行的命令也消失了。

如何将当前 bash 历史记录移植到新的 tmux 会话中?理想情况下,我可以将其添加到 tmux 配置中,否则我可以将其放入别名中,例如tmuxhist

答案1

将其放入您的~/.bashrc

export PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
shopt -s histappend

此解决方案不仅适用于 tmux,它还适用于 GNU screen 或选项卡式终端,或者只是打开新的 xterm 窗口。基本上,它表示“将每个命令附加到历史记录中,并确保 bash 在退出时不会清空历史记录文件”。

这也意味着您可以在 tmux 中打开一个新窗格,然后按 ctrl+p 来执行上一个窗格中的最后一条命令。

答案2

history -w; tmux有点起到作用。

alias tmuxhist='history -w; tmux'为其创建一个别名。

不幸的是不可能在 tmux 配置中添加启动时执行的命令。

相关内容