1つ以上のtmuxウィンドウを「固定」にすることはできますか?つまり、このウィンドウは私のtmuxセッションで現在利用可能なすべてのウィンドウに表示されますか?
答え1
答え2
Chrisが言ったように、ウィンドウを固定として表示できる組み込み機能はありません。これは、現在のウィンドウをオンにしたときに他のすべてのウィンドウのすべてのウィンドウの再構成を処理する方法がすぐには明確ではないため、意味があります。 「べたつき」になります。ユーザーが見えない方法でレイアウトを混乱させると、ユーザーエクスペリエンスが低下することがよくあります。
次のバインディングが役に立ちます。
bind -n M-k move-pane -t ':+'
bind -n M-j move-pane -t ':-'
これは、JとKを使用して左右に移動するのに慣れているVimユーザーになじみがあります。このバインディングを使用すると、tmux が介入し、アクティブなAlt+KウィンドウAlt+Jをそれぞれ左右のウィンドウに移動します。
現在のウィンドウを取り出し、隣接するtmuxウィンドウに入力します。ターゲットウィンドウレイアウトにウィンドウを挿入するインデックスを指定することもできます。提供できる他のオプションについては、マンページを参照してくださいmove-pane
。
これはもちろん依然としてレイアウト変更があります(ソースウィンドウの変更は暗黙的であり、1つのウィンドウに制限されますが、ターゲットウィンドウの変更も1つのウィンドウに制限されて直接観察可能です)、さらに「制御」されます。 「固定」するように設計されたウィンドウに集中する限り、目標をある程度達成できます。
「固定」したいウィンドウに焦点を当てる必要があるため、まだ満足していません。これは常に表示されますが、実際にはピントが合わない固定ウィンドウが必要な場合は、このコマンドをすばやく実行することは困難です。
固定したいウィンドウに特別な名前を使用し、コンテンツを手動で並べ替える少し複雑なtmuxスクリプトを考えることができます。しかし、痛いようです。
最後の興味深いオプションの1つは、入れ子になったtmuxを使用することです。固定ウィンドウを親tmux内に配置し、他のウィンドウに端末の残りの部分をホストするtmuxが含まれるようにします。これにより、子供tmux内で自由に切り替えることができます。問題は、基本的に同じ操作を実行するにはプレフィックスキーを2回押す必要があるため、操作を見つける必要があることです。また、非常に迷惑なことです。ネストされたtmuxスマート「トンネル」を介してバインディングをバインドしましたが、これらの非効率的なメッセージングスキームのロジックはすぐに管理するのが難しくなります。これに対する1つの制限は、ここの「固定ウィンドウ」が全高さまたは幅にわたっている必要があり、角にすることができないことです。
とにかく、私はこれがtmuxが私たちのために実装しなければならない機能だと言いたいと思います。なぜなら、正しくスクリプトすることはほとんど不可能だからです。しかし、実際には混乱しない方法でこれを行う方法がわかりません(最初の文を参照)。