回答:
これを行うコマンドはjoin-pane
tmux 1.4にあります。
join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane] (alias: joinp) Like split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane.
これを簡単にするために、私はそのためにこれらのバインドを持っ.tmux.conf
ています:
# pane movement
bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
1つ目はターゲットウィンドウからペインを取得して現在のウィンドウに結合し、2つ目はその逆を行います。
その後、セッション内から次を実行して、tmuxセッションをリロードできます。
$ tmux source-file ~/.tmux.conf
Prefix+s
とプロンプトウィンドウ名を入力し、そのウィンドウにペインを送信するために...
結合ペインが答えです。私もtmuxのドキュメントに基づいて使用しようとすると問題が発生しました。-tおよび-sスイッチは[session:] windowではなく[session]:windowを受け入れるように見えることを発見しました。つまり、セッションの指定はオプションですが、:を含めることは必須です。(tmux 1.5を使用しています)
したがって、ペインを現在のウィンドウに追加し、ウィンドウ1をペインに配置するには、コマンドは(Ctrl-Bまたはバインドキーに続いて)...になります。
:join-pane -s :1
その後、デフォルトでCtrl-Bであるブレークペインを使用して、それらのアプリケーションをブレークできます。ショートカットにバインドする場合は、sのようなデフォルトのバインドをオーバーライドしないことをお勧めします。これは、インターネット上でchoose-sessionを含む回答を探し、システム上では機能しないためです。ブレークペインはにバインドされていることに注意してください!@はそのすぐ隣にあり、デフォルトでは何にもバインドされていません。そのため、このバインディングをお勧めします...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"
あるいは、インタラクティブなセレクターを使用するには...
bind-key @ choose-window 'join-pane -h -s "%%"'
または、最後にアクセスしたウィンドウに常に参加するには...
bind-key @ join-pane -h -s !
注:これ-h
により、デフォルトの動作である逆とは対照的に、ペインが水平に(垂直に分割されて)スタックされます。
最も重要なことは、ショートカットの選択を何でも学習することです。設定しただけで忘れてしまうと、外部サーバーで自分自身を見つけたときに目を奪われるからです。それに直面しましょう。ターミナルマルチプレクサが提供する最も重要なことは、リモートサーバーでの信頼できるセッションです。
これで、GNU ScreenからTmuxへの変換が完了しました。私は決して振り返ることはありません。
楽しい!
window.pane
、たとえばjoin-pane -s 1.0
ウィンドウ1のペイン0を現在のウィンドウに移動するのに役立ちました。詳細はmaciej.lasyk.info/2014/Nov/19/tmux-join-pane
:
どうやらもう必要ありません(例:doのみ:join-pane -s 1
)。たぶんそれは以前のバージョンのバグだったのでしょう
他の答えを調べてtmuxのマニュアルページを熟読した後、今のところ次のバインディングに決めました。
bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'
これにより、参加するウィンドウをインタラクティブに選択し、小文字s
/ v
バインディングをミラーリングして新しい垂直/水平分割を作成できます。ウィンドウの代わりに個々のペインを選択する方法を知っている人がいたら教えてください。
-v
および-h
は、それぞれ垂直および水平の「分割」を作成しません。それらは、それぞれ垂直および水平の「スタックペイン」を作成します。(つまり、垂直に積み上げられたペインは水平に分割されているということです。)そのため、そのように脳を鍛えなければなりません。また-v
、これもデフォルトです。そのため、私はそれを省い-h
て、あなた~/.tmux.conf
がチートシートとして動作するように、そこに入れるだけにします。
デフォルトでは、Ctrl+はb、!でしょう破る新しいウィンドウにアクティブなペインをし、それに切り替えます。
tmux
このキー実行コマンドがあるbreak-pane
(別名:breakp
)で実装されているcmd-break-pane.c
とのデフォルトとしてバインドキーbindings.cに見られるようにlist-keys
(別名:lsk
)コマンドの出力:
bind-key -T prefix ! break-pane