Как использовать сочетания клавиш Byobu во вложенном удаленном сеансе?

Как использовать сочетания клавиш Byobu во вложенном удаленном сеансе?

Я использую Byobu (с Tmux, внутри gnome-terminal) и у меня возникла проблема с его сочетаниями клавиш (которую я, вероятно, не понимаю).

Я запускаю byobu, открываю несколько окон, затем из одного из этих окон я подключаюсь по ssh к другой машине и запускаю byobu там. Независимо от того, нажимаю ли я Ctrl- cили Ctrl- a- c, я не уверен, как создавать и переключаться между окнами в этом удаленном сеансе.

Примечание: если я войду Shift, F12я смогу переключаться между окнами с помощью функциональных клавиш в удаленном сеансе, но это не идеально, так как мне также нужно переключаться между окнами в основном сеансе.

Есть идеи?

Заранее спасибо за вашу помощь.

решение1

Я обнаружил, что использование Shift-F12для включения/выключения внешних сочетаний клавиш byobu немного проще для запоминания и использования. Единственная новая клавиша, которую нужно запомнить, это Shift-F12, а затем внутренним byobu можно управлять с помощью обычных сочетаний клавиш F-.

Нашел это решениездесь.

Также полезно то, что он Shift-F12указан в списке сочетаний клавиш внутренней справки byobu, доступ к которому можно получить через Shift-F1меню F1«Справка - Краткое руководство».

решение2

Я предполагаю, что вы настроили byobu на использование Ctrl- Aв качестве escape-последовательности tmux.

Команды, которые вы вводите в терминале, сначала обрабатываются вашим локальным экземпляром tmux, а затем вложенным сеансом tmux. Это означает, что вам нужно дважды выполнить escape, чтобы перейти к вложенному экземпляру:

  • Ctrl- a c# открывает окно в вашей локальной сессии
  • Ctrl- a Ctrl- a c# открывает окно в вашем удаленном сеансе

Если вторая строка не работает, попробуйте (какуказано @artm)

  • Ctrl- a a c# вторая а безCtrl

решение3

Ctrl-a Ctrl-aтакже не сработало для меня. Я обнаружил, что это сработало после комментирования следующей строки в .byobu/keybindings.tmux:

unbind-key -n C-a

Другим решением может стать использование внутренней send-keyкоманды Tmux:

  • выберите панель или окно, где запущен вложенный сеанс
  • нажмите Ctrl+ a :ввод send-key -2, а затем команду или клавишу, которую вы хотите отправить

Примеры:

  • Ctrl+ a : send-key -2 c= создать новое окно
  • Ctrl+ a : send-key -2 p= перейти к предыдущему окну
  • Ctrl+ a : send-key -2 n= перейти к следующему окну

Не очень интуитивно понятно, но работает даже с Putty.

Связанный контент