중첩된 tmux 세션에 단축키를 보내는 방법

중첩된 tmux 세션에 단축키를 보내는 방법

내 로컬 컴퓨터와 원격 컴퓨터 모두에 이 tmux 구성이 있습니다.

is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'

bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"

원격 세션에서 다른 창으로 이동하려고 하는데 중첩된 세션으로 전송되지 않습니다. 모든 창 사이를 깔끔하게 전환하려면 Caps Lock + h를 어떻게 보내야 합니까?

답변1

ssh로컬 포드에서 실행한 다음 tmux원격 측 에서 실행 중이라고 가정합니다 .

간단한 해결책은 ssh정규식에 추가하는 것입니다. 단점은 원격 끝에 있든 없든 send-keys C-h작동한다는 것입니다. 원격 측이 tmux존재하는지 확인하는 것은 간단하지 않습니다(가능한 경우 신뢰할 수 있는 방법으로).tmux

tmux또한 로컬 중첩 tmux 세션을 다룰 수도 있습니다.

수정한 코드:

is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)(g?(view|n?vim?)(diff)?|ssh|tmux)$"'
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"

select-pane -L내부 세션은 외부 세션의 Pod를 인식하지 못합니다 . 세션 내의 창만 선택됩니다. IMO에서는 내부 세션의 창 내에서 이동하고 경계에 도달하면 외부 세션으로 투명하게 "점프"할 수 있는 논리를 구축하는 것이 매우 어려울 것입니다(역시: 가능하다면 강력한 방식으로).

관련 정보