Переключение разделенной панели в tmux: переключение один раз за команду


Я был счастливым пользователем tmux в течение некоторого времени, но есть одно поведение, которое меня беспокоит. Когда я переключаю панели с помощью ^B-arrow, а затем сразу нажимаю стрелку вверх (например, чтобы получить команду из истории), панель окна снова переключается. Я понимаю, что это может быть полезно, если вы хотите быстро перемещаться по нескольким окнам, но для меня это боль в задней части, так как я продолжаю заканчивать в окнах, в которых я никогда не хотел быть.

Итак, есть ли способ установить tmux так, что ^B-стрелка команда только переключает панель после и игнорирует все последующие нажатия клавиш со стрелками?

3 61

3 ответа:

это происходит потому, что привязки по умолчанию для клавиш со стрелками настраиваются с помощью bind-key -r, указав, что они могут быть повторены. Есть два способа, которые вы можете отключить это.

во-первых, вы можете использовать set-option repeat-time 0 чтобы полностью отключить повторение. Это повлияет на все привязки. Я считаю, что это очень раздражает при изменении размера панелей.

во-вторых, вы можете изменить привязку для клавиши со стрелками, чтобы использовать bind-key без :

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/seamlessly-navigate-vim-and-tmux-splits для еще лучшего решения, которое также перемещается по окнам Vim.

другой вариант-сделать привязку для перехода к предыдущей панели, если вы щелкаете взад и вперед между теми же двумя панелями.

bind-key C-a last-pane