Использование Ctrl + для переключения между окнами с помощью tmux

Я начал использовать tmux но я чувствую, что использование Ctrl b 0-9 очень раздражает, потому что оно используется так часто.

Как мне привязать клавиатуру, поэтому мне нужно сделать Ctrl 0-9 для изменения окон (например, в Chrome)?

Я попытался настроить его в .tmux.conf , но без каких-либо успехов.

это мой текущий .tmux.conf файл

 bind C select-pane -t :.+ set -g status-bg black set -g status-fg white 

Несколько нажатий клавиш Control + digit генерируют довольно стандартизированные последовательности, но не все они делают.

Вот что я нашел в xterm, что мне было удобно:

 C-1: 1 (ie not different form a plain 1 keystroke) C-2: ^@ C-3: ^[ C-4: ^\ C-5: ^] C-6: ^^ C-7: ^_ C-8: ^? C-9: 9 (ie plain 9) C-0: 0 (ie plain 0) 

Те же последовательности генерируются в iTerm 2 (хотя это сильно настраивается).

Если ваш эмулятор терминала генерирует похожие последовательности, вы можете связать большинство из них (хотя вам нужно использовать стандартные, нечисловые «имена» для ключей, например, C-@ или ^@ и т. Д.). Вам нужно будет найти способ настроить ваш терминал для отправки какой-либо последовательности для любых нажатий клавиш, которые еще не отправляют что-то отличное от немодифицированного ключа (например, как 1, 9 и 0 выше).

Однако привязка этих ключей без префикса ( bind -n … ), вероятно, приведет к большому количеству вещей. В частности, ^[ является символом Escape (используется почти во всех терминальных управляющих последовательностях), ^? обычно является символом Delete, ^@ (как C-Space) обычно используется в редактировании Emacs (-style) и т. д.

Вероятно, лучший подход заключается в том, чтобы настроить терминал для отправки последовательностей «modifyOtherKeys» в стиле xterm, которые распознает tmux 1.8 (если ваш xterm поддерживает это, tmux автоматически просит, чтобы это произошло):

 C-1: ^[[27;5;49~ C-2: ^[[27;5;50~ C-3: ^[[27;5;51~ C-4: ^[[27;5;52~ C-5: ^[[27;5;53~ C-6: ^[[27;5;54~ C-7: ^[[27;5;55~ C-8: ^[[27;5;56~ C-9: ^[[27;5;57~ C-0: ^[[27;5;48~ 

Названия tmux для этих ключей – это точно C-0 и т. Д.

Примечание. Эти имена и последовательности ключей не распознаются версиями tmux старше 1,8.

Вы бы .tmux.conf их так (в вашем .tmux.conf ):

 bind-key -n C-0 select-window -t :0 bind-key -n C-1 select-window -t :1 bind-key -n C-2 select-window -t :2 bind-key -n C-3 select-window -t :3 bind-key -n C-4 select-window -t :4 bind-key -n C-5 select-window -t :5 bind-key -n C-6 select-window -t :6 bind-key -n C-7 select-window -t :7 bind-key -n C-8 select-window -t :8 bind-key -n C-9 select-window -t :9 

Ответ @ChrisJohnsen идеален, однако некоторым людям может понадобиться помощь в том, как настроить ключи Iterm 2 для достижения такого поведения.

Сначала перейдите в «Iterm2 -> Настройки -> Профили -> Ключи», как в:

Конфигурация профиля Iterm

а затем нажмите на символ + чтобы добавить пресет, когда в списке нет какого-либо Ctrl + Number (формат в списке будет ^number ), как в случае с ^1 , который недоступен в списке по умолчанию.

Нажмите Ctrl + 1 при выборе сочетания клавиш и выберите «отправить escape-последовательность» в качестве действия. Затем добавьте escape-последовательности Криса Джонсена без ^ [, которые будут добавлены действием iterm2:

введите описание изображения здесь

Позже повторите эту процедуру для всех других клавиш управления, отредактировав те, которые уже существуют.