可以在 tmux 中设置每个会话/上下文相关的键绑定吗?

可以在 tmux 中设置每个会话/上下文相关的键绑定吗?

我使用 tmux 做所有事情,因此.bashrc每当我进入 shell 时,我都会在我的 tmux 中创建一个会话/附加会话。有时,我会通过 ssh 进入具有相同配置的计算机。因此,我已经在本地计算机上处​​于 tmux 会话中,在通过 ssh 进入远程计算机后,我又在远程计算机上处​​于另一个 tmux 会话中。

我已经C-a在两台机器上都设置了前缀,因此最终发生的情况是,C-a将前缀发送到本地,同时C-a C-a将前缀发送到远程机器的 tmux 会话中。

我想为本地和远程会话设置两个不同的前缀(例如`vs. C-a)。但远程机器就在楼下,我可能想直接走到那里,在全新的 tmux 会话中对其进行操作,只使用C-a我习惯的前缀。但由于`在 tmux 会话中设置为前缀ssh,因此现在适用于全部tmux 会话,现在我必须按两次反引号才能在命令行上输入一次。

有没有办法在 tmux 中为不同的会话设置单独的前缀(或一般的键绑定)?还是我应该忍受并习惯双击C-a

答案1

在 tmux 的 shell 里面(临时解决方案):

tmux bind-key -n '`' 'send-keys C-a'

或者在您的.tmux.conf(永久配置,在新的 tmux 服务器启动时应用):

bind-key -n '`' 'send-keys C-a'

此绑定将使你的 tmux 发送C-a`但不是发送给它自己,而是发送给在当前(本地)窗格中运行的程序(例如ssh)。实际上`将执行你的Ctrl+ aCtrl+a所做的操作。

使用标准 tmux 配置(C-b前缀为 )的用户应该使用send-keys C-b

相关内容