我已经使用 tmux 有一段时间了,但是这个问题似乎在切换机器后才真正出现。
使用前缀 + 箭头键按方向切换窗格时,tmux 会在每次方向键按下后等待一段时间,以查看您是否添加了任何方向键按下。当您有两个水平排列的窗格时,只需按下前缀然后左右混合即可轻松观察到这一点。它将无限期地接受额外的左+右垃圾邮件作为窗格更改,前提是您没有在它们之间留出太多时间。
然而对我来说,切换窗格后要做的第一件事就是重新运行该终端中运行的最后一个命令(向上箭头),这是非常常见的情况。由于 tmux 在切换窗格时会执行这种等待和捕获操作,因此我必须等待一秒钟以上才能按下向上箭头,否则它会吞噬我的按键。是否有配置选项可以缩短此时间?这开始变得非常烦人。
答案1
tmux 非常灵活:我的所有示例按键都基于默认配置(在 OpenBSD 中)。如果您是管理员/安装人员并且没有修改自定义按键,那么这可能适用于您的机器,但我提到的按键不能保证适用于所有 tmux 安装。如果人们修改了自定义设置,那么希望这些人也能弥补这些不足,让这些说明与自定义设置配合使用。
有一个选项叫做 repeat-time。您可能希望关闭该功能。请注意,如果您键入 Ctrl-B ?,则会显示命令列表。其中许多命令仅以“bindkey”开头,但箭头键以“bindkey -r”开头。-r 表示应使用重复时间。
Ctrl-B :解除右侧绑定
注意:你可能会想这样做:
Ctrl-B :绑定右选择窗格 -R
但是,这样做时,似乎会自动插入 -r(在 bind 一词之后)。按
Ctrl-B ?将运行“lsk”并显示当前设置,包括重新插入 -r。我还没搞清楚为什么;可能是箭头键特有的东西。手册页确实说“已为绑定到 resize-pane 命令的默认键启用重复功能。”resize-pane 使用 Ctrl-箭头。
Ctrl-B :设置重复时间 1
Ctrl-B :显示
这将值设置为 1 毫秒。缺点是灵活性似乎很小:这似乎是一个普遍影响所有命令的选项。但是,您可能无论如何都不需要这种灵活性,因此这可能是一个可用的解决方案,您发现它完全令人满意。
一旦找到喜欢的东西,请务必编辑 tmux 配置文件,以便可以自动完成此操作,而无需每次都输入这些按键。
答案2
无法发表评论,因此我将在此发布此更新。此问题似乎已得到修复,只需绑定新键即可(至少从 2.8-3 版开始)。tmux 现在似乎会自动解除绑定,因此这四个设置将修复此问题:
bind-key Left select-pane -L
bind-key Right select-pane -R
bind-key Up select-pane -U
bind-key Down select-pane -D