"Cb Cb Cb"를 사용하여 tmux가 세 번째 중첩 tmux 세션에 들어가도록 하려면 어떻게 해야 합니까?

"Cb Cb Cb"를 사용하여 tmux가 세 번째 중첩 tmux 세션에 들어가도록 하려면 어떻게 해야 합니까?

C-b C-btmux에서는 (Ctrl+b를 두 번) 사용하여 두 번째 중첩 세션에 들어갑니다. 그러나 세 번째 중첩 세션이 있는 경우 C-b C-b C-b이를 사용하여 세 번째 중첩 세션에 액세스할 수 없습니다. 어떻게든 스팸을 보내면 C-b때로는 세 번째 중첩 세션으로 들어가는 경우가 있습니다. 무슨 일이에요?

답변1

기본 바인딩을 사용하여 control-b를 세 번째 레벨 tmux로 가져오려면 1*2*2(=4) control-b를 사용해야 하고 네 번째 레벨로 가져오려면 1*2*2*2(=8)를 사용해야 합니다. tmux, 일반적으로 n번째 tmux에 도달하려면 2 n-1이 필요합니다 .

"뭐가 문제 야?". 모든 control-b는 첫 번째 레벨 tmux에서 읽습니다. 첫 번째는 명령 시퀀스를 소개하는 데 사용됩니다. 두 번째는 컨트롤 b를 애플리케이션에 보내는 명령을 실행하는 것을 나타냅니다. 세 번째는 시퀀스를 시작하고, 네 번째는 명령을 실행하여 두 번째 control-b를 애플리케이션에 보냅니다. 이제 애플리케이션은 두 번째 수준 tmux입니다. 4개의 control-bs를 입력했으므로 첫 번째 레벨 tmux는 2개의 control-bs를 두 번째 레벨로 보냈습니다. 이들 중 첫 번째는 명령 시퀀스를 시작하고 두 번째는 명령을 실행하여 control-b를 세 번째 레벨 tmux로 보냅니다.

이렇게 깊게 중첩된 tmux를 많이 사용할 계획이라면 2, 4, 8, 16 등의 control-b 문자를 전송하는 사용자 정의 바인딩을 추가하는 것을 고려해 보는 것이 좋습니다. 예를 들어

    bind-key -T prefix C-g send -N 1 C-b
    bind-key -T prefix C-h send -N 2 C-b
    bind-key -T prefix C-l send -N 4 C-b

Ctrl이를 tmux 구성 파일에 넣거나 -etc 를 입력하여 첫 번째 수준 tmux에 입력할 수 있습니다 b:bind-keySpace-TSpaceprefixSpaceC-hSpace. 이렇게 하면 Ctrl- bCtrl- g// 두 번째/세 번째/네 번째 수준 tmux에 명령을 h보냅니다 .l

완전성을 기하기 위해 제가 언급한 또 다른 옵션은 다른 tmux에서 다른 접두사 키를 사용하는 것입니다. 나는 그것을 권장하지 않습니다. 혼란의 여지가 너무 많습니다.

관련 정보