tmuxペインをどのように非表示にしますか?


60

tmuxウィンドウに3つのペインがあります。

--------------------------
|             |      2   |
|             |          |
|        1    |----------|
|             |      3   |
|             |          |
--------------------------

ペイン1および2にはがありvimます。ペイン3は、私が開発中のcliを実行します。時々、ペイン1と2を比較したいので、ペイン3を非表示にします:

--------------------------
|             |          |
|             |          |
|        1    |       2  |
|             |          |
|             |          |
--------------------------

その後、ペイン3を再び表示します。ペイン3をセットアップしたので、ペイン3を強制終了したくはありません。また、再度セットアップしますが、行きたくありません。

  • PREFIX + zペイン2をズームできるが、ペイン1に触れることなく似たようなものはありますか?または
  • ペイン3をすばやく非表示にし、必要に応じて元に戻す方法はありますか?

回答:


71

break-paneおよびjoin-paneコマンドを使用します。参照してくださいman tmux詳細、オプション、および使用のため。


非表示ペイン3:

ペイン3を選択してPrefix- と入力し:break-pane -dPます。

tmuxペイン3をバックグラウンドのウィンドウ(-dフラグ)に送信し、ペイン2の情報(-Pフラグ)を表示します。デフォルトでは、次のようなものが表示されます1:2.0(つまり:)session:window.pane。ヒットqして作業を続けます。1

1いくつかの練習を行うと-Psession:window.paneトリプレットを予測できるため、フラグをドロップできます。sessionデフォルトは現在のセッションで、paneデフォルトは0while windowで、次の空きウィンドウ識別子になります。

ペイン3を取り戻す:

ペイン取得するには3、背面のレイアウト、選択ペイン2と問題Prefix- :join-pane -vs 1:2.0伝えるtmuxペインに分割する2(垂直-v)と(ソース)ペイン(参加するため-sの識別子とを)1:2.0。必要に応じて、識別子sessionまたはpane識別子をドロップできます。便利なアクセス、そのtmuxは店にもコマンドライン履歴を注意してくださいPrefix- - 。:Up

あなたはおそらくそれを理解するのにしばらく時間が必要でしょうが、一度やると、あなたにとって便利なカスタムキーバインディングを確実に思いつくことができるでしょう。


この質問には、ワークフローを改善するための役立つ情報とコツが含まれています。


明確な指示!私にとってはスムーズに機能し、私の答えよりもはるかに優れています!
ベルンハルト14

デフォルトでは、ペイン3は最後のウィンドウに分割されます。現在のセッションにすでに3つのウィンドウがある場合、ペインはウィンドウ3になります(ウィンドウは0から始まると想定)ので、「ウィンドウ3」の3は開いたウィンドウ、これをカスタムキーバインディングでどのように機能させることができますか?
CodyChan

5

アイデア:tmuxでtmuxを実行します。

元のセットアップ:

ペイン1およびペイン2。並んで。通常どおりペイン1でvimを実行します。

ペイン2でtmuxを再度実行し、2つのペインを作成します(今回はもう1つを重ねます)。次に、ペイン2.1でvimを実行し、ペイン2.2でCLIを実行します。これにより、Vimの2番目のインスタンスを使用して2.1の全画面ペインを作成し、目的の動作を実現できます。


これは私が箱から出して考えていることです!
user881300

ユーザー881300に感謝します。これにはいくつかの欠陥があります(コマンドを送信できるということには、いくつかの癖があります)。これをテストしたら、これをより完全な回答に更新したいと考えています。自分で同様の機能が必要です。
BinaryBen

2
@ user881300技術的には、これはボックスインザボックス思考です。
Mateen Ulhaq

3

ペイン3を非表示にする代わりに、少しチートして、非常に小さくすることもできます。

ペイン2がアクティブペインの場合、次のことができます。

PREFIX : resize-pane -D 40

その後、再び上に移動するには、次のいずれかを実行できます

PREFIX : resize-pane -D 28

28を適切な数に置き換える必要がある場合、または代わりに、PREFIXEsc4自動サイズ変更を行うを試すことができます。


を使用してペインのサイズを変更してset -g mouse-resize-pane onいましたが、サイズ変更以外に他のオプションはありますか?
user881300 14

@ user881300私は決してtmux専門家ではありませんが、これが可能かどうかを知りたいと思います。
ベルンハルト14

1
CTRL+B, ALT+<arrow direction to resize>CTRL+B, ESC, 4(thx @Bernhard)よりもそれを復元します。
FelikZ

1

私は今、この質問はほぼ5歳ですが、似たようなことをしたかったので見つけました。user78291の答えのおかげで次のキーバインディングを思いつきました

bind-key ! break-pane -d -n _hidden_pane
bind-key @ join-pane -s $.1

この方法でPrefix!、現在のペインを非表示にPrefix@して元に戻すことができます。良い点は、この方法で複数のペインを非表示にできることです。

完璧とはほど遠いですが、ペインを非表示にして元に戻す作業を行います。


0

これは実際に作業中のペインを非表示にしないことを知っていますが、tmuxが選択されたウィンドウに一般的なコマンドを送信するのをやめさせ、はるかに簡単な解決策を得ようとしていました。

ペインを視覚的に非表示にするのではなく、ペインへの入力をすべて停止する場合。シナリオとして、開いている5つのペインにコマンドを送信したいが、2つのペインに送信したくない場合があります。

このユースケースでは ctrl + s、コマンドを移動させたくないペインで実行できます(ctrl + sペインへのすべての入力をロックします)。

完了したら、を押しctrl + cて戻ってきます。

ctrl + qコマンドは、その画面ですべてのコマンドを実行するため、押した後に押さないでくださいctrl + cこれを行いません(Ubuntuでこれを試しました)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.