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}'