tmuxウィンドウをウィンドウに移動

tmuxウィンドウをウィンドウに移動

既存のウィンドウを別のウィンドウに移動する方法マルチプレクサ複数のウィンドウがあり、その逆もありますか?

どこから来たのか画面、目的のウィンドウに達するまでウィンドウに切り替えてからウィンドウに切り替えることができます。マルチプレクサこれは許可されていないようです。

答え1

これを行うコマンドは次のとおりです。join-panetmux 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 '%%'"

最初はターゲットウィンドウからウィンドウを取得し、現在のウィンドウに接続し、2番目はその逆を実行します。

その後、セッションで次のコマンドを実行してtmuxセッションを再ロードできます。

$ tmux source-file ~/.tmux.conf

答え2

接続窓が答えです。また、tmuxのドキュメントに従って使用する際に問題がありました。探してみると、-tスイッチ-sが受け入れて[session]:window受け入れないようです[session:]window。つまり、セッションを指定することはオプションですが、セッションを含めることは:必須です。 (私はtmux 1.5を使用しています)

したがって、現在のウィンドウにウィンドウを追加してウィンドウ1をそのウィンドウに配置するには、コマンドは(Ctrl+Bまたはキーバインディングが何であれ)...

:join-pane -s :1

その後、Break-paneを使用して分離できます。基本的には次のようになります。Ctrl+B !ショートカットにバインドするには、sなどのデフォルトのバインディングをオーバーライドしないことをお勧めします。次はインターネットで検索するからです。答えは選択に関連しています。システムで機能しないセッション。 Break-Paneはすぐ隣にバインドされており、!デフォルトでは何にもバインドされていません。@このため、私はこのバインディングをお勧めします...

bind-key @ command-prompt -p "create pane from:"  "join-pane -s ':%%'"

またはインタラクティブセレクタがあります...

bind-key   @ choose-window 'join-pane -h -s "%%"'
bind-key C-@ choose-window 'join-pane    -s "%%"'

または最近訪問したウィンドウを常に含めます。

bind-key @ join-pane -h -s !

注:これ-hにより、ウィンドウが水平に積み重ねられます(垂直に分割)。これはデフォルトの動作とは反対です。

結論は、どのショートカットを選択しても学ぶことができるということです。なぜなら、ただ設定して忘れてしまえば、海外サーバーにいるときに問題が生じるからです。正直なところ、ターミナルマルチプレクサが提供する最も重要な機能は、リモートサーバーでの信頼性の高いセッションです。

これでGNU ScreenからTmuxへの変換が完了しました。私は決して振り返らないでしょう。

楽しむ!

答え3

私はウィンドウを自分のウィンドウに移動するために使用した方法を好むと思います。私は使う

break-pane -t :

私はこれを実験的に見つけましたが、かなりうまくいくようです。スクリプトを必要とせずにキーバインディングやエイリアスを簡単に指定できます。

答え4

他の答えを見て、tmuxのマニュアルページを熟読した後、次のバインディングを決定しました。

bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'

これにより、結合するウィンドウをインタラクティブに選択し、小文字s/vバインディングをミラーリングして新しい垂直/水平分割を作成できます。ウィンドウの代わりに単一のウィンドウを選択する方法を知っている人がいる場合は、教えてください。

関連情報