4개의 창(예:이 문제. 이제 일부 환경 변수를 변경했으며 4개 창 모두에서 새 값이 인식되기를 원합니다. 하나의 명령으로 4개의 창을 모두 재생성하는 쉬운 방법이 있습니까?
이것이 모든 창에서 작동한다는 것을 알고 있지만 :respawn-pane -k
4번 입력해야 한다는 것은 성가신 일입니다. 나도 그것을 시도했지만 respawn-window
새 창만 남았습니다(4개 창 보기가 종료되었습니다).
감사해요
답변1
다른 것이 없다면 스크립트하는 것이 쉬워 보입니다(더 나은 방법에 대한 경고는 주석을 참조하십시오).
배쉬/zsh: for pane in $(tmux list-panes -a -F "#D"); do tmux respawn-pane -k -t $pane; done
물고기:for pane in (tmux list-panes -a -F "#D"); tmux respawn-pane -k -t $pane; end
아시다시피 이 옵션은 다른 창에서 실행 중인 모든 프로세스를 종료하므로 주의해서 사용해야 합니다.
답변2
원래 질문을 할 때 왜 이것을 언급하지 않았는지 잘 모르겠지만 직교 답변으로서 이 질문의 사용 사례는 제가 전환한 주요 이유 중 하나였습니다.생선 껍질여러 해 전에.
Fish에는 실행 중인 모든 셸 인스턴스에서 업데이트/변경(및 지속)되는 "범용 변수"라는 기능이 있습니다. 예를 들어:
# Long form
set --universal --export some_sock /run/myapp.sock
# Short form
set -Ux some_sock /run/myapp.sock
Fish를 실행하는 모든 tmux 창에는 새로운 변수 및/또는 업데이트된 값이 있습니다.