TMUX: 창을 분할한 후 새 창 ID를 어떻게 알 수 있나요?

TMUX: 창을 분할한 후 새 창 ID를 어떻게 알 수 있나요?

이것은 제가 달성하려는 과정만큼 간단해 보이지만 검색해 본 결과 아무런 성과가 없었습니다. 창을 분할한 다음 새로 생성된 창에 키를 보내는 키 바인딩을 만들고 싶습니다. 하지만 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

관련 정보