web-dev-qa-db-ja.com

OS X Byobu垂直分割

現在、iTerm2とbyobuを使用してOS Xを使用していますが、OS Xで画面を垂直に分割する方法がわかりません。Linuxでは、Ctrl + F2で画面を垂直に分割できますが、OSXでは、 Appleの異なるキーボードのおかげで動作します。

私はソリューションを探し回っていましたが、これを理解することはできません。 Shift + F2で画面を水平に分割できますが、垂直に分割できる必要があります。誰もがAppleコンピュータで動作するようにbyobuのキーボードバインドを取得する方法を考え出しましたか?

前もって感謝します。

34
Chris Jeon

オープンになっているようです この問題のバグ

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

を使用して:

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

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

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

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

  1. byobuを開始します。

  2. ご希望を設定 Ctrl-A 実行による動作:byobu-ctrl-a。私はEmacsモードを選択しました。

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

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

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

いくつかのキーマッピングをiTerm2プロファイルに追加して、 CTRL、 ALT、 SHIFT、そして FN by風で動作するキー。これは退屈ですが、演習を行ったところうまくいくようです。これらのキーマッピングを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では、tmuxウィンドウのデフォルトディレクトリにいくつかの違いがあるようです( SrcSrcSrc )。 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 設定を再読み込みします。

61
MangoHands