Переключение разделенных панелей в tmux: один раз на команду
Я был счастливым пользователем tmux какое-то время, но там было одно поведение, которое меня било. Когда я переключаю панели с помощью ^ b-стрелки, а затем сразу же нажимаю стрелку вверх (например, чтобы получить команду из истории), панель окна снова переключается. Я понимаю, что это может быть полезно, если вы хотите быстро перемещаться по нескольким панелям, но для меня это боль в задней части, так как я продолжаю кончать в стеклах, на которых я никогда не хотел быть.
Итак, есть ли способ установить tmux так, чтобы команда ^ b-стрелка только переключала панель один раз и игнорировала любые следующие нажатия клавиш со стрелкой?
Ответы
Ответ 1
Это происходит потому, что привязки по умолчанию для клавиш со стрелками устанавливаются с помощью 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
Ответ 2
Если вы много раз проводите навигацию по панелям, почему бы не настроить глобальные сопоставления, так что вам вообще не нужно использовать префиксы, например. bind -n C-h select-pane -L
для отображения ctrl-h для переключения влево, как и Vim.
Смотрите http://robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits для еще лучшего решения, которое также перемещается через окна Vim.
Ответ 3
Другой вариант - сделать привязку для перехода к предыдущей панели, если вы перемещаетесь назад и вперед между теми же двумя панелями.
bind-key C-a last-pane