在 tmux 中进行分割窗格切换: 每个命令切换一次

我已经成为一个快乐的多功能混合使用者有一段时间了,但有一个行为困扰着我。当我使用 ^ b-Arrow 切换窗格,然后立即按向上箭头(例如从历史记录中获取命令)时,窗格将再次切换。我理解,如果您想快速移动多个窗格,这可能很有用,但对我来说,这是一个痛苦的后面,因为我总是在窗格中结束,我从来没有打算进入。

那么,是否有一种设置 tmux 的方法,使 ^ b-Arrow 命令只切换面板 一次,而忽略按下面的任何箭头键?

15119 次浏览

之所以会发生这种情况,是因为箭头键的默认绑定是用 bind-key -r设置的,指定它们可以重复使用。有两种方法可以禁用它。

首先,可以使用 set-option repeat-time 0完全禁用重复。这将影响所有绑定。我发现在调整窗格大小时这非常烦人。

其次,您可以更改箭头键的绑定以使用 bind-key,而不使用 -r选项:

bind-key Up    select-pane -U
bind-key Down  select-pane -D
bind-key Left  select-pane -L
bind-key Right select-pane -R

另一种选择是进行绑定以跳转到上一个窗格,如果您在相同的两个窗格之间来回跳转的话。

bind-key C-a last-pane

如果您花费大量时间在窗格中导航,为什么不设置全局映射,这样您就根本不需要使用前缀,例如 bind -n C-h select-pane -L将 ctrl-h 映射为向左切换,就像 Vim 一样。

有关更好的解决方案,请参见 http://robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits,该解决方案还可以在 Vim 窗口中导航。