如何将跨不同 tmux 窗口/窗格执行的选择性命令保存在中央位置?

如何将跨不同 tmux 窗口/窗格执行的选择性命令保存在中央位置?

有没有办法在使用 tmux 时将一些独特的命令存储在中央位置?

我只是想将一些容易忘记的命令存储在一个中心位置,这样我就可以在 tmux 中跨窗口或窗格使用该命令。

CTRL + R - 使我只能从该特定窗格或窗口访问过去的命令。另外,如果我重新启动或关闭 tmux 会话,我往往会丢失历史记录。

答案1

我假设你的 shell 是bash,但这真的不应该那么重要。

Ctrl+R和历史搜索通常是 shell 功能,而不是来自tmux.大多数 shell 应该在退出时自动保存历史记录。看这个链接有关如何bash处理历史记录的一些信息。它解释说:

默认情况下,Bash 仅在退出时更新其历史记录,并用新版本覆盖现有历史记录。这会阻止您保留完整的历史记录,原因有两个:

  • 如果用户多次登录,则覆盖将确保只有最后退出的 shell 才会保存其历史记录。
  • 如果您的 shell 异常终止 - 例如由于网络问题、防火墙更改或因为它被终止 - 则不会写入任何历史记录。

在下一行中,给出(希望)如何防止这种情况的答案:

为了解决第一个问题,我们设置了 shell 选项histappend,该选项会附加所有新的历史记录行,并确保多个登录不会覆盖彼此的历史记录。

其他一些 shell 句柄有其他处理方法。例如,我选择的fishshell 有一个history merge命令“立即合并其他会话的历史更改”。因此,如果您在多个窗格中运行fish,并且需要来自当前窗格中不同窗格的命令,那么history merge就可以解决这个问题。

相关内容