ネストされたリモート セッションで Byobu キーバインディングを使用するにはどうすればよいでしょうか?

ネストされたリモート セッションで Byobu キーバインディングを使用するにはどうすればよいでしょうか?

私は Byobu (Tmux 付き、gnome-terminal 内) を使用していますが、キーバインディングに問題があります (おそらく理解できていないのでしょう)。

byobu を起動し、いくつかのウィンドウを開いて、これらのウィンドウの 1 つから別のマシンに ssh で接続し、そこで byobu を起動します。-または- -Ctrlのどちらを押しても、このリモート セッションでウィンドウを作成および切り替える方法がわかりません。cCtrlac

注: と入力するとShiftF12リモート セッションでファンクション キーを使用してウィンドウを切り替えることができますが、メイン セッションでもウィンドウを切り替える必要があるため、これは理想的ではありません。

何か案は?

ご協力をよろしくお願いいたします。

答え1

外側の byobu のキーバインディングのオン/オフを切り替えるには を使用するとShift-F12、覚えやすく使いやすいことがわかりました。覚えておくべき唯一の新しいキーは でShift-F12、その後は内側の byobu を通常の F キーバインディングで制御できます。

解決策を見つけたここ

Shift-F12また、byobu の内部ヘルプのキーバインド リストにリストされているので便利です。Shift-F1このヘルプ リストには、F1メニューの [ヘルプ - クイック スタート ガイド] からアクセスできます。

答え2

Ctrlbyobu が-をAtmux のエスケープ シーケンスとして使用するように設定されていると想定しています。

ターミナルに入力したコマンドは、まずローカルの tmux インスタンスによって処理され、次にネストされた tmux セッションによって処理されます。つまり、ネストされたインスタンスに移動するには、2 回エスケープする必要があります。

  • Ctrl- a c# ローカルセッションでウィンドウを開きます
  • Ctrl- a Ctrl- a c# リモートセッションでウィンドウを開きます

2行目が機能しない場合は、(@artm が指摘

  • Ctrl- a a c# 2番目なしCtrl

答え3

Ctrl-a Ctrl-a私の場合はうまくいきませんでした。次の行をコメントアウトしたらうまくいったことが分かりました.byobu/keybindings.tmux

unbind-key -n C-a

別の回避策としては、内部 Tmuxsend-keyコマンドを使用することです。

  • ネストされたセッションが実行されるペインまたはウィンドウを選択します
  • Ctrl+ a :Enterを押してsend-key -2から、送信したいコマンドまたはキーを押します

例:

  • Ctrl+ a : send-key -2 c= 新しいウィンドウを作成
  • Ctrl+ a : send-key -2 p= 前のウィンドウに切り替える
  • Ctrl+ a : send-key -2 n= 次のウィンドウに切り替える

あまり直感的ではありませんが、Putty でも動作します。

関連情報