一段时间以来,我一直是一个快乐的 tmux 用户,但有一种行为困扰着我。当我使用 ^b 箭头切换窗格,然后立即按向上箭头(例如,从历史记录中获取命令)时,窗口窗格再次切换。我知道如果您想快速通过多个窗格,这可能很有用,但对我来说,这是一种痛苦,因为我一直在我从未想过要进入的窗格中结束。
那么,有没有办法设置 tmux 以便 ^b-arrow 命令只切换一次窗格并忽略任何后续箭头键按下?
一段时间以来,我一直是一个快乐的 tmux 用户,但有一种行为困扰着我。当我使用 ^b 箭头切换窗格,然后立即按向上箭头(例如,从历史记录中获取命令)时,窗口窗格再次切换。我知道如果您想快速通过多个窗格,这可能很有用,但对我来说,这是一种痛苦,因为我一直在我从未想过要进入的窗格中结束。
那么,有没有办法设置 tmux 以便 ^b-arrow 命令只切换一次窗格并忽略任何后续箭头键按下?
发生这种情况是因为箭头键的默认绑定是用 设置的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 -n C-h select-pane -L
将 ctrl-h 映射到左切换,就像 Vim 一样。
请参阅http://robots.thoughtbot.com/seamless-navigate-vim-and-tmux-splits以获得更好的解决方案,该解决方案也可以跨 Vim 窗口导航。
如果您在相同的两个窗格之间来回滑动,另一个选项是进行绑定以跳转到上一个窗格。
bind-key C-a last-pane