다음은 중간 옵션의 기본 설정입니다 ~/.tmux.conf
.
set -gw window-status-format " #I:#W#{?window_flags,#{window_flags}, } "
문제는 첫 번째 창이 활성화되지 않은 경우 다른 모든 창과 달리 첫 번째 창 이름(상태 표시줄의 창 목록)에 값 시작 부분의 공백 문자가 적용되지 않는다는 것입니다. 독립적으로 적용됩니다. 따라서 첫 번째 창으로 전환할 때마다(나중에 추가되는 공백 문자로 인해) 창 목록에 매우 혼란스러운 움직임이 있습니다. 이런 일은 일어나서는 안 됩니다.
그래서 제가 원하는 것은 다음과 같이 설정하고 싶습니다 window-status-format
.
"#I:#W#{?window_flags,#{window_flags}, } "
ifwindow_index
is0
(즉, 대상 첫 번째 창 이름)입니다." #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 명령이 아닙니다(분명히 작동하지 않습니다).
- 물론 이는
window_index
동등성을 확인하는 올바른 구문 이 아닙니다0
. - 동일한 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
다른 기본 인덱스를 사용하는 경우 위 명령에서 해당 인덱스를 사용해야 합니다 .1
0
:1
해결책이 필요해새 세션을 생성하면 오류가 표시되기 때문에 물론 거기에서 설명한 대로 수정할 수 있습니다.
답변2
다른 해결책을 찾았습니다.
is_first="#([ $(tmux display-message -p '#I') = $(tmux show-options -gqv base-index) ] && echo true)"
set -gw window-status-format "#{?$is_first,First is active,}"