使 tmux 前缀绑定始终充当前缀,并且仅充当前缀(幂等绑定)?

Make tmux prefix binding always act as prefix, and prefix only (idempotent binding)?

我浏览了 subreddit 和 SO 标签以及几页 Google 搜索的多个措辞,但我找不到任何 threads/topics/pages 解决这个问题,所以这里是:

我希望 tmux 中的前缀键始终 'activate' tmux 中的前缀。让我解释一下我的意思——来自手册页:

tmux may be controlled from an attached client by using a key combination of a prefix key, `C-b' (Ctrl-b) by default, followed by a command key. The default command key bindings are:

C-b

Send the prefix key (C-b) through to the application.

我的 tmux.conf 中没有 'send-prefix' 设置为在按下两次时将前缀组合发送到应用程序,但结果似乎是前缀现在充当 'toggle'。按一次,下一个键被解释为命令。按两次,下一个键将直接发送到应用程序。例如:

我想这样做,无论前缀被按下多少次,下一个按下的键总是被解释为命令(即上面的两个击键序列给出相同的结果)。

提前致谢!


如果您想知道我为什么要这个,只要说它与一个非常复杂的 tmux.conf 文件和很多(但不是几乎所有)我的键绑定上的可重复标志有关就够了。我已经习惯了必须在不可重复绑定之前立即按下前缀,所以我总是按下它,即使我刚刚使用完可重复命令也是如此。这看起来像 'second' 按下 tmux 的前缀,这使得我的命令键发送到终端。边缘情况,我知道,但如果可以关闭此行为,我将避免大量的错误击键!

这应该可以解决问题:

bind-key C-b switch-client -Tprefix

如果您不将前缀视为特殊键,而只是将前缀视为 root table 中的一个绑定,它也调用 switch-client -T:[=14=,则更有意义]

# Equivalent to 'set-option -g prefix C-b'?
bind-key -Troot C-b switch-client -Tprefix