使 tmux 前缀绑定始终充当前缀,并且仅充当前缀(幂等绑定)?
Posted
技术标签:
【中文标题】使 tmux 前缀绑定始终充当前缀,并且仅充当前缀(幂等绑定)?【英文标题】:Make tmux prefix binding always act as prefix, and prefix only (idempotent binding)? 【发布时间】:2018-07-04 23:01:19 【问题描述】:我已经浏览了 subreddit 和 SO 标签以及谷歌搜索的多个短语的几页,但我找不到任何解决这个问题的线程/主题/页面,所以这里是:
我希望 tmux 中的前缀键始终“激活”tmux 中的前缀。让我解释一下我的意思 - 来自手册页:
tmux 可以通过使用前缀键的组合键从附加的客户端控制,默认情况下是 `C-b' (Ctrl-b),然后是命令键。 默认的命令键绑定是:
C-b
将前缀键 (C-b) 发送到应用程序。
我的 tmux.conf 中没有设置“发送前缀”,以便在按下两次时将前缀组合发送到应用程序,但结果似乎是前缀现在充当“切换”。按一次,下一个键被解释为命令。按两次,下一个键将直接发送到应用程序。例如:
C-b, C-Up 导致我的窗格被调整了一个单元格,但是
C-b、C-b、C-Up 导致 ctrl + up 被发送到我的终端窗口。
我想让它不管前缀被按下多少次,下一个按下的键总是被解释为一个命令(即上面的两个击键序列给出相同的结果)。
提前致谢!
如果你想知道我为什么想要这个,我只想说它与一个非常复杂的 tmux.conf 文件和我的很多但不是几乎所有的键绑定上的可重复标志有关。我已经习惯了必须在不可重复的绑定之前立即按下前缀,我总是点击它,即使我刚刚使用完可重复的命令。这看起来像是对 tmux 前缀的“第二次”按下,这使得我的命令键发送到终端。边缘情况,我知道,但如果可以关闭此行为,它将为我节省大量错误的击键!
【问题讨论】:
【参考方案1】:这应该可以解决问题:
bind-key C-b switch-client -Tprefix
如果您不将前缀视为特殊键,而仅将其视为root
表中的一个绑定,该表也调用switch-client -T
,则更有意义:
# Equivalent to 'set-option -g prefix C-b'?
bind-key -Troot C-b switch-client -Tprefix
【讨论】:
已经搞砸了几天了,正是我想要的。谢谢(并接受)!以上是关于使 tmux 前缀绑定始终充当前缀,并且仅充当前缀(幂等绑定)?的主要内容,如果未能解决你的问题,请参考以下文章
接收解析 XML:未绑定前缀错误和属性缺少 Android 命名空间前缀