37

現在、iTerm2 と byobu を使用して OS X を使用していますが、OS X で画面を縦に分割する方法がわかりません。Linux では、Ctrl+F2 で画面を縦に分割できますが、OSX ではそうではありません。 Apple の別のキーボードのおかげで、うまくいきません。

私は解決策をグーグルで調べましたが、これを理解できません。Shift+F2 で画面を水平に分割できますが、垂直に分割できる必要があります。byobu のキーボード バインディングを Apple コンピュータでうまく動作させる方法を見つけた人はいますか?

前もって感謝します。

4

1 に答える 1

73

この問題について未解決のバグがあるようです。

OS Xでbyobuをローカルに使用するようにiTerm2を構成し、Ubuntu 14.04サーバーでsshを介してリモートで使用することができました。

使用:

  • OS X バージョン: 10.9.5 ビルド 13F34
  • iTerm2 バージョン: ビルド 1.0.0.20140629

まず、OS X のシステム設定で、キーボード設定を編集し、byobu (つまり+ - )と競合する可能性のあるショートカット設定を削除または変更しますCtrlF1F12

オプション 1: エスケープ シーケンスを使用した回避策

キーに完全な機能を追加しなくても機能する回避策を次に示しFNます。これにより、byobu エスケープ キーを使用してウィンドウを垂直方向に分割できます。

  1. 開始しbyobuます。

  2. Ctrl次を実行して、目的のA動作を設定しますbyobu-ctrl-a。私は Emacs モードを選択しました。

  3. 実行byobu-configして、エスケープ シーケンスを選択または変更します。新しいデフォルトCtrl+を使用しましたSF12キーもエスケープシーケンスです

  4. これで、エスケープ シーケンスを使用してコマンドを発行できます。ウィンドウを縦に分割するには、F12then%またはCtrl+ sthenを試してください。%コマンドの完全なリストについては、Ctrl+ sthen?またはF12thenを試してください?

オプション 2: すべてのキーを完全に使用するように iTerm2 キー マッピングを設定しFNます。

iTerm2 プロファイルにいくつかのキー マッピングを追加してCTRL、 、ALTSHIFT、およびFNキーを byobu と連携させることができます。これは面倒ですが、演習を行ったところ、うまくいくようです。これらのキー マッピングを iTerm2 で自動的に保存する方法はないと思います。

  1. iTerm2 設定を開き、プロファイルを選択します。
  2. 使用するプロファイルを選択します。
  3. ターミナル ペインを開き、[ターミナル タイプのレポート] で [linux] を選択します。
  4. [キー] ペインを開き、次のキー バインドを手動で追加します。1 つのキー バインドを追加する方法の例を次に示します。

    • 「+」アイコンをクリックします。
    • 最初のフィールドにマッピングされているキーボード ショートカットを入力します。例:CTRL + F2
    • [アクション] フィールドで [エスケープ シーケンスの送信] を選択します。
    • 3 番目のフィールドに文字を入力します。例:[1;5Q

ここに記載されていないキー シーケンスの制御文字は、tmux ソース コードを参照して確認できます。

これらすべてのマッピングに対してこれを繰り返して、対応する byobu コマンドを機能させます。

  • CTRL+ F2:[1;5Q
  • CTRL+ SHIFT+ F2:[1;6Q
  • ALT+ LEFT:[1;3D
  • ALT+ RIGHT:[1;3C
  • ALT+ UP:[1;3A
  • ALT+ DOWN:[1;3B
  • CTRL+ F3:[1;5R
  • CTRL+ F4:[1;5S
  • CTRL+ SHIFT+ F3 :[1;6R
  • CTRL+ SHIFT+ F4 :[1;6S
  • SHIFT+ ALT+ LEFT:[1;4D
  • SHIFT+ ALT+ RIGHT:[1;4C
  • SHIFT+ ALT+ UP:[1;4A
  • SHIFT+ ALT+ DOWN:[1;4B
  • CTRL+ F5:[15;5~
  • CTRL+ SHIFT+ F5:[15;6~
  • ALT+ F6:[17;3~
  • CTRL+ F6:[17;5~
  • ALT+ PPAGE:[5;3~
  • ALT+ NPAGE:[6;3~
  • CTRL+ F8:[19;5~
  • ALT+ SHIFT+ F8:[19;4~
  • CTRL+ SHIFT+ F8:[19;6~
  • CTRL+ F9:[20;5~
  • ALT+ F11:[23;3~
  • CTRL+ F11:[23;5~
  • ALT+ F12:[24;3~
  • CTRL+ F12:[24;5~
  • ALT+ INS:[2;3~

概要

物事を機能させるには、次のことが必要でした。

  • OS X キーボード ショートカットとの競合を解消します。
  • ターミナル キー マッピングを編集して、ファンクション キーの使用時に正しいエスケープ シーケンスを送信します。
  • iTerm2 ターミナル タイプを「Linux」に設定します。これにより、TERM 環境変数が「linux」に設定されます。Byobu や Tmux はこれに敏感なようです。

エスケープ シーケンスに関するその他のリファレンス: SO リンクおよびxterm-keys.c


新しいウィンドウとペインのデフォルト ディレクトリ

tmux 1.8 と tmux 1.9 ( SrcSrcSrc )の間で tmux ウィンドウの既定のディレクトリにいくつかの違いがあるようです。tmux 1.9 で byobu を使用している場合は、これを~/.byobu/keybindings.tmuxファイルに追加してみて、新しいウィンドウまたは垂直/水平分割を作成するときに、現在のペインと同じディレクトリで開くことができます。

unbind-key -n F2
bind-key -n F2 display-panes \; new-window -c "#{pane_current_path}" -n -
unbind-key -n C-F2
bind-key -n C-F2 display-panes \; split-window -hc "#{pane_current_path}"
unbind-key -n  S-F2
bind-key -n S-F2 display-panes \; split-window -vc "#{pane_current_path}"
unbind-key %
bind-key % display-panes \; split-window -hc "#{pane_current_path}"
unbind-key |
bind-key | display-panes \; split-window -vc "#{pane_current_path}"

を押しF5て設定をリロードします。

于 2014-10-20T16:10:33.270 に答える