tmuxウィンドウを隠す方法は?

tmuxウィンドウを隠す方法は?

私のtmuxウィンドウには3つのウィンドウがあります。

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

ウィンドウ1と2がありますvim。ウィンドウ3は、私が開発しているCLIを実行します。時にはウィンドウ1と2を比較したいので、ウィンドウ3を隠したいと思います。

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

その後、ウィンドウ3に戻ります。ウィンドウ3にはすでにいくつかの項目が設定されていて、リセットしたくないので削除したくありません。

  • PREFIX + zウィンドウ2のサイズを変更してもウィンドウ1に触れないようなものはありますか?または
  • ウィンドウ3をすばやく隠し、必要に応じて復元する方法はありますか?

答え1

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


ウィンドウ3を隠す:

ウィンドウを選択し3Prefix-を入力します:break-pane -dP

tmux3ウィンドウを背景ウィンドウ(フラグ)に送信し、-dウィンドウ2(フラグ)にこれに関する情報を印刷します。-Pデフォルトでは、次の内容が表示されます1:2.0(意味session:window.pane:)。作業を続けるにはクリックしてくださいq1

1いくつかの練習でトリプルを-P予測できるので、そのフラグを削除できます。現在のセッションのデフォルト値、whileのデフォルト値は、次の空きウィンドウ識別子になります。session:window.panesessionpane0window

検索バー3:

ウィンドウとレイアウトを復元するには、ウィンドウを選択3して2問題Prefix通知を発行して:join-pane -vs 1:2.0ウィンドウを縦に分割し、tmux()識別子を使用して(ソース)ウィンドウをリンクします()。削除または識別を選択することもできます。 tmuxには、 --または --- 経由で簡単にアクセスできるコマンドライン履歴も保存されます。2-v-s1:2.0sessionpanePrefix:UpPrefix:ctrlp

慣れるには少し時間がかかるかもしれませんが、慣れたら自分に便利なカスタムキーバインディングを確実に思い出すことができます。


この問題ワークフローを改善するのに役立つ情報とヒントが含まれています。

答え2

私はこの質問をほぼ5年前に受け取りましたが、似たようなことをしたかったので、この質問を見つけて、次のキーバインディングを思い出しました。user78291の返信:

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

Prefix!これにより、現在のウィンドウを非表示にしてPrefix@復元するために使用できます。良い点は、このようにして複数のウィンドウを隠すことができるということです。

完璧とは距離が離れていますが、ウィンドウを隠して再びインポートするのに効果的です。


更新:ウィンドウインデックスの変更

答え3

アイデア:tmux内でtmuxを実行してください。

元の設定:

ウィンドウ1とウィンドウ2が並んでいます。ウィンドウ1でvimを正常に実行します。

ウィンドウ2でtmuxを再実行して2つのウィンドウを作成します(今回は別のウィンドウの上に1つずつ)。次に、ウィンドウ2.1でvimを実行し、ウィンドウ2.2でCLIを実行します。これにより、2番目のVimインスタンスを使用してPane 2.1をフルスクリーンにし、必要なアクションを作成できます。

答え4

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

ウィンドウを視覚的に非表示にしたくないが、ウィンドウに入力するのをやめたい場合。 1つの状況は、5つの開いているウィンドウにコマンドを送信したいが、そのうちの2つには送信したくない場合です。

このユースケースでは、 ctrl + sコマンドを実行したくないウィンドウで操作を実行できます(ctrl + sウィンドウへのすべての入力をロックする)。

完了したら、ctrl + cReturn キーを押します。

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

関連情報