![TMUX: 창을 분할한 후 새 창 ID를 어떻게 알 수 있나요?](https://linux55.com/image/114898/TMUX%3A%20%EC%B0%BD%EC%9D%84%20%EB%B6%84%ED%95%A0%ED%95%9C%20%ED%9B%84%20%EC%83%88%20%EC%B0%BD%20ID%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
이것은 제가 달성하려는 과정만큼 간단해 보이지만 검색해 본 결과 아무런 성과가 없었습니다. 창을 분할한 다음 새로 생성된 창에 키를 보내는 키 바인딩을 만들고 싶습니다. 하지만 send-keys 명령을 사용하려면 창 ID가 필요합니다. 문제는 현재 창에 몇 개의 창이 열려 있는지 알 수 없다는 것입니다. 따라서 원래 창에서 실행되는 코드가 새 창 인덱스가 무엇인지 추론할 수 없다는 것입니다. 이 새 인덱스나 ID를 찾을 수 있는 방법이 있습니까(둘 다 대상으로 사용할 수 있음)?
감사해요.
답변1
쉘 스크립트에 특히 유용한 또 다른 방법입니다.
tmux split-window -P -F "#{pane_id}"
창 ID(예: %4)를 stdout으로 출력합니다.
그래서 당신은 할 수 있습니다
bash_var=$(tmux split-window -P -F "#{pane_id}")
쉘/bash 변수에 캡처하려는 경우.
에서 가져옴https://github.com/tmux-plugins/tmux-sidebar/blob/master/scripts/toggle.sh
답변2
tmux에서 각각의 새 창은 환경 변수를 사용하여 액세스할 수 있는 고유한 값을 갖습니다.TMUX_PANE.
tmux display -pt "${TMUX_PANE:?}" '#{pane_index}'
그러면 창 번호가 표시됩니다.
답변3
명명된 파이프를 통해 새 창의 ID를 다시 전송하여 이 작업을 수행합니다.
mkfifo pane_id
tmux split-window -h \; send-keys 'echo $TMUX_PANE > pane_id' Enter \; select-pane -t "$TMUX_PANE"
cat pane_id
답변4
당신은 당신의 문제를 지나치게 생각하고 있습니다. 이렇게 하면 split-window
새 창은 가 됩니다 send-keys
. 이미 tmux에 있으므로 바인딩에서 tmux를 호출하면 안 됩니다. 노력하다
bind-key s split-window \; send-keys "pwd" Enter