Связывание команды в tmux без использования префиксного ключа

46

Можно ли связать команду tmux с комбинацией клавиш и использовать ее напрямую, без предварительного нажатия на префикс?

Я считаю C-b + nслишком громоздким переключение панелей, поэтому мне было интересно, могу ли я связать, C-1например, переключиться на панель # 1.

Или, может быть, есть способ сделать ярлык в эмуляторе терминала для отправки C-b + 1при нажатии C-1?

Благодарность!

Иван
источник
1
Я просто использую set -g prefix C-a.
Гравитация
Я тоже, я просто поставил Cb на мой вопрос, потому что это по умолчанию.
Иван

Ответы:

46

для вашего примера используйте:

bind-key -n C-1 select-pane -t 1

аргумент -n для bind-key означает отсутствие префикса.

Autoplectic
источник
1
Благодарность! Это почти делает это, за исключением того, что он не распознает числа, говорит он unknown key: C-1. Если я использую письмо, это работает. Вы знаете, как я могу указать цифровую клавишу?
Иван
6
@Ivan: Обычные коды для нажатия клавиш управления происходят из ASCII. ASCII не определяет коды для C-1..C-9. Стандартными управляющими символами ASCII являются C- @, Ca..Cz, C- [, C- \, C-], C- ^, C-_ и C- ?. Большинство терминалов просто не поддерживают отдельные коды для большинства модифицированных нажатий клавиш (хотя многие поддерживают некоторые модификаторы для клавиш со стрелками и функциональных клавиш). Вам, вероятно, лучше использовать F1вместо C-1(также обратите внимание, что номера панелей начинаются с 0, а не с 1: привязать F1 к выбору панели 0, F2 к 1 и т. Д.).
Крис Джонсен
2

У меня есть спор с принятым ответом здесь.

Согласно tmux(1), -n is an alias for -T root. То есть включение на -nсамом деле не означает, что префикса нет, а означает, что команда будет привязана к корневой таблице, что «не рекомендуется».

tmux(1):

Корневая таблица используется для клавиш, нажимаемых без префиксной клавиши: привязка 'c' к новому окну в корневой таблице (не рекомендуется) означает, что обычная 'c' создаст новое окно

Кажется, это говорит о том, что:

bind -n c new-window

Будет создано новое окно при cнажатии, и это действительно так.

Сухой юмор в фразе автора «не рекомендуется» заключается в том, что «c», конечно, будет нажиматься много раз в среднем сеансе tmux, учитывая, что «c» является третьей по частоте буквой в английском языке .

Другой пример - быстрое переключение окон tmux (с использованием клавиш PageUp / PageDown):

unbind NPage
unbind PPage
bind -n PPage previous-window
bind -n NPage next-window
g33kz0r
источник