SSHを介して接続しているシステムのリモートホストを抽出しようとしています。
tmuxの変数pane_title
は次のとおりです。
username@host: ~
ウィンドウの状態を次のように設定してみました。
:setw -g window-status-format ' #I:#{s/^.*@(.*):.*/\1/i:pane_title}'
しかし、これを行うと、ウィンドウの状態がこのように見えますが、1:
tmuxが最初のコロンを誤って理解したのではありませんか?
:
プレフィックスからaをエスケープする方法はありますか?
私はそれを逃げるためにバックスラッシュを使ってみました。
:setw -g window-status-format ' #I:#{s/^.*@(.*)\:.*/\1/i:pane_title}'
ただし、これはウィンドウの状態を変更しません。
$ tmux -V
tmux 3.2
答え1
オプション1:文字通りの解釈
「l」は、文字列を拡張せず、文字通り解釈する必要があることを指定します。たとえば、「#{l:#{?pane_in_mode,yes,no}}」は「#{?pane_in_mode,yes,no}」に置き換えられます。
したがって、フォーマット文字列は次のものを使用します#{l::}
。
:setw -g window-status-format ' #I:#{s/^.*@(.*)#{l::}.*/\1/i:pane_title}'
オプション2:ASCIIコードポイントの置き換え
'a'は数値引数を対応するASCII引数に置き換えるため、 '#{a:98}'の結果は 'b'です。
:
はいASCII 0x3A/#58そのため、フォーマット文字列は次のものを使用します#{a:58}
。
:setw -g window-status-format ' #I:#{s/^.*@(.*)#{a:58}.*/\1/i:pane_title}'