web-dev-qa-db-ja.com

Tmux:2つの隣接するペインの分割スタイルを切り替える

ペインレイアウトの再形成一般的にを説明するのは簡単ではないことを理解していますが、少なくとも2つの隣接するペインのレイアウトを交換できることに興味があります。

これらのペインがこのようにレイアウトされているとします

 _____________
|    |        |
|    |   2    |
|    |________|
| 0  |        |
|    |        |
|    |        |
|    |   3    |
|____|        |
| 1  |        |
|____|________|

そして、ペイン3でさらに垂直方向のスペースが必要であることがわかりました。ペイン0または1でそれを再配置する方法を考えるのは簡単ではありませんが、3と2に分割軸を反転するように指示できれば、本当に素晴らしいでしょう。

 _____________
|    |     |  |
|    |     |  |
|    |     |  |
| 0  |     |  |
|    |  3  |2 |
|    |     |  |
|    |     |  |
|____|     |  |
| 1  |     |  |
|____|_____|__|

(ここでtmuxがおそらくそれを再配列するので、古い3が新しいペイン#2になることに注意してください)

現在、join-pane -hを実行して再編成しようとすると、「ペインを独自のウィンドウに結合できません」と表示されます。ええ、まあ、私はレイアウト全体を乱すことなくそれをシャッフルしようとしているだけです。

回避策は、それを独自の名前付きウィンドウに分割して、すぐに元に戻すことですが、切り替える方向(水平と垂直)を判別できないようです。

これは、すぐに使用できるコマンドが存在する2つのペインの場所を交換する操作とは異なります。分割軸を入れ替えようと思っています。

35
Steven Lu
# Here is a jewel of a bind which does the task of flipping the
# orientation of the current pane with the pane before it (in the
# ordering) -- I had a SO question on this and nobody answered.
bind -n M-f move-pane -t '.-'
bind M-f move-pane -t '.-'
bind -n M-r move-pane -h -t '.-'
bind M-r move-pane -h -t '.-'

コメントは嘘です。この機能は直感的ではなく、率直に言って面倒ですが、ピンチで機能します。

更新:私はこれを更新して、私の構成の-nバインドを削除しました。基本的には、tmuxを介してキーストロークを「通過」する機能を開いたままにしておきたいです。たとえばしばらくして、私は同じ組み合わせにバインドされたVim内のまったく同じ機能を望みました。

21
Steven Lu

接頭辞+スペースはnext layoutにバインドされています

53
Brandon

C-b space(デフォルトで次のレイアウトにバインド)は、使用可能なレイアウトを循環します

9
R.F

あなたが本当にあなたが言ったことを本当にやりたいのなら、私はペインを新しいウィンドウに分割してから、それを再び結合することをお勧めします。

例えば...

2つのペインのいずれかがアクティブになっていることを確認して、分割します。

接頭辞break-pane

メインウィンドウ(プレフィックスw)に戻り、残りのペインで操作を実行して、目的のレイアウトにします

他のペインを隣接させたいアクティブなペインがあることを確認してください

ウィンドウに名前が付けられている(または割り当てられた名前がわかっている)ことを確認する

ペインが分割された新しいウィンドウに移動します(プレフィックスwを再度)

join-pane -t <Main Window Name> -h(または-v垂直分割が必要な場合)

1
Steve