Ответ 1
Команда send-prefix
может использоваться для отправки нажатия клавиши префикса (в процессе работы) активной панели. По умолчанию префикс Cb и Cb привязан к send-prefix
(так что его двойное нажатие отправляет одиночную Cb в активную панель). Это именно то, что нам нужно для доступа к привязкам внутреннего экземпляра tmux.
Первый C-b захватывается "внешним" экземпляром tmux в качестве его префиксного ключа. Второй захвачен "внешним" экземпляром tmux и запускает привязку C-b (send-prefix
). Это отправляет C-b на активную панель внешних экземпляров. Процесс, выполняющийся в этой области (в конечном счете, через экземпляр ssh), является "внутренним" экземпляром tmux. Он захватывает C-b как его префиксный ключ. Теперь ваше следующее нажатие клавиши будет передано через внешний экземпляр tmux и захвачено внутренним, чтобы вызвать привязку.
Чтобы вызвать привязку c (new-window
) в экземпляре tmux второго уровня, вы должны ввести C-b C-b c. Для экземпляра tmux третьего уровня вы должны ввести C-b C-b C-b C-b c.
Это удвоение для каждого уровня может раздражать, если вы обычно имеете дело с несколькими уровнями tmux. Если вы можете зарезервировать другой ключ, вы можете сделать привязку с префиксом, чтобы сделать вещи (возможно) более удобными для ввода:
bind-key -n C-\ send-prefix
bind-key -n C-^ send-prefix \; send-prefix
Создать новое окно в tmux второго уровня: C-\c
Создайте новое окно в tmux третьего уровня: C- ^ c (или C-\C-\c)
Если у вас есть ограниченное количество команд tmux, которые вы хотите (легко) отправить в экземпляры tmux более низкого уровня, вместо этого вы можете использовать send-keys
для создания определенных привязок (возможно, только в вашем экземпляре tmux верхнего уровня ):
bind-key C-c send-keys C-b c
bind-key C send-keys C-b C-b c
Создать новое окно в tmux второго уровня: C-b C-c
Создать новое окно в tmux третьего уровня: C-b C