tmux.confでwindow_indexが0の場合、他のオプションを設定しますか?

tmux.confでwindow_indexが0の場合、他のオプションを設定しますか?

以下は中間オプションのデフォルト設定です~/.tmux.conf

set -gw window-status-format " #I:#W#{?window_flags,#{window_flags}, } "

問題は、最初のウィンドウがアクティブでない場合、他のすべてのウィンドウとは異なり、最初のウィンドウ名(ステータスバーのウィンドウリスト)に値の先頭の空白文字が適用されないことです。独立して適用されます。したがって、最初のウィンドウに切り替えるたびに(後で追加される空白文字のため)、ウィンドウリストに非常に混乱する動きがあります。このようなことは起こってはいけません。

だから私が望むものは次のように設定したいと思いますwindow-status-format

  • "#I:#W#{?window_flags,#{window_flags}, } "if window_indexis 0(つまり、ターゲットの最初のウィンドウ名)。
  • " #I:#W#{?window_flags,#{window_flags}, } "window_index他のものがある場合。

次のようになります。

set -gw window-status-format "#{?window_index=0,"#I:#W#{?window_flags,#{window_flags}, } "," #I:#W#{?window_flags,#{window_flags}, } "}"

しかし、これはいくつかの理由で正しいtmuxコマンドではありません(明らかに機能しません)。

  1. もちろん、これはwindow_index同等性を検証する正しい構文ではありません0
  2. 同じtmux設定に複数の条件がある可能性がありますか?注文する?

では、どうすれば正しく実行できますか?

ベストアンサー1

これは、複数の条件を使用する代わりに特異性を使用して実行できるようです。私がしなければならなかったのは、私のファイルに以下を追加することだけでした~/.tmux.conf

set -gw window-status-format " #I:#W#{?window_flags,#{window_flags}, } "
set -w -t :0 window-status-format "#I:#W#{?window_flags,#{window_flags}, } "

まだ明確ではない場合:

  • 最初の tmux コマンドは、セッションに関係なくすべてのウィンドウのグローバル値を設定します。 (これもデフォルトですので、この行はまったく必要ありません。)

  • 次のコマンドは、ターゲットウィンドウの値を指定します(セッションも関係ありません)。私たちの場合、ターゲットウィンドウのインデックスが(つまり、ターゲットウィンドウがセッションの最初のウィンドウでもある場合)、その値が適用されることを意味しwindow_indexます0

    興味深いことに-t、target-windowオプションはステータスバーの対応するウィンドウの名前もターゲットにします。そうでなければ、この解決策は一つではないでしょう。

メモ:

  • たとえば、で始まらないようにset -g base-index 1別の基本インデックスを使用する場合は、上記のコマンドでそのインデックスを使用する必要があります。10:1

  • 解決策が必要です。新しいセッションを作成するとエラーが表示されるため、もちろんそこで説明したように修正できます。

おすすめ記事