Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 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