tmuxでウィンドウを効率的に並べ替える方法は?たとえば、次のウィンドウセットがあります。
0:zsh 1:elinks 2:mutt 3:irssi 4:emacs 5:rss 6:htop
rss
次の間を移動しelinks
てmutt
終了するにはどうすればよいですか?
0:zsh 1:elinks 2:rss 3:mutt 4:irssi 5:emacs 6:htop
私はまだ使用されていないインデックスで移動ウィンドウを使用する方法を知っており、move-window
これを達成するために一連の移動ウィンドウを使用できますが、明らかにこれは非常に退屈です。
答え1
swap-window
あなたを助けることができます:
swap-window -t -1
現在のウィンドウを左にした位置に移動します。
~から人間マルチプレクサ:
swap-window [-d] [-s src-window] [-t dst-window]
(alias: swapw)
This is similar to link-window, except the source and destination windows are swapped.
It is an error if no window exists at src-window.
キーにバインドできます。
bind-key -n S-Left swap-window -t -1
bind-key -n S-Right swap-window -t +1
Shift+Left
その後、およびを使用してShift+Right
現在のウィンドウの位置を変更できます。
答え2
最近のtmuxバージョンの動作を見ると、swap-windowコマンドが同じウィンドウを維持しないことがわかりますが、受け入れられ、高い支持を受けた答えは正確です。したがって、動作方法はやや直感的ではありません。アクティブウィンドウはその方向に変わりますが、同じスロットに残ります!
この問題を解決するには、それに従うようにバインディングを増やすだけです。たとえば、私のtmux設定は次のようになります。
bind -n C-S-Left { swap-window -t -1; previous-window }
bind -n C-S-Right { swap-window -t +1; next-window }
答え3
すぐに使える方法(Tmux 3.0+)
これがあるメニュー表示機能は次のとおりです。v2.9からv3.0へ。
(Prefix) <これで、Tmuxでは、以下のように、現在のウィンドウと他のウィンドウの交換を制御できるフローティングボックスをトリガーできます。
コメント:
- デフォルトのプレフィックスは次のとおりです。Ctrl-b
- (Prefix) >フローティングボックスをトリガーその他の機能また、セグメンテーションやスケーリングのようなものです。
(Prefix) <
現在のウィンドウを別のウィンドウに置き換えることを制御できるトリガーフロートを使用するショートカットを偶然発見しました。
すべてのプラグインが無効なドキュメントではこの機能が見つからないため、これが新機能であるかどうかはわかりません。しかし、それは窓を再配置するのに役立ちました。
@KamilMaciorowskiのドキュメントを引用していただきありがとうございます。
答え4
tmux
バージョン 1.7 以降の場合
move-window -r
または
set-option -g renumber-windows on
今後は自動的に実行される予定です.tmux.conf
。