tmux: 접두사 없이 C-{를 바인딩할 수 없습니다.

tmux: 접두사 없이 C-{를 바인딩할 수 없습니다.

웹 브라우저에서와 동일한 단축키를 사용하여 창 사이를 이동하고 싶습니다.

그래서 나는 노력했다

bind-key -n "C-{" previous-window
bind-key -n "C-}" next-window

그리고

bind-key -n "C-S-[" previous-window
bind-key -n "C-S-]" next-window

작동하지 않습니다.

저는 macos, kitty, zsh를 사용하고 있습니다.

답변1

역할 같은 것은 없습니다 ^{.

0부터 0x1f까지의 바이트에는 32개의 ^X 제어 문자가 있습니다: ^@, ^A.. ^Z, ^[, ^\, ^], ^^, ^_. 또한 ^?ASCII 세트의 마지막 문자인 바이트 0x7f입니다.

터미널은 + 및 on , + 및 on , + 및 on 을 ^I전송 합니다 . 에서 일부는 일부 (BS)를 일부 (DEL) 로 보냅니다 . 일부는 + 및 + 등에 대해 (NUL)을 보냅니다. IOW, 일부 키에서 +를 눌렀을 때 전송되는 문자는 제어 문자(텔레타이프 캐리지를 시작 위치로 되돌리는 캐리지 리턴과 같은 제어 기능이 있는 문자)이며, ASCII에는 제한된 세트만 있습니다. (총 33개).CtrlITab^[Ctrl[Escape^MCtrlMEnterBackspace^H^?^@Ctrl@CtrlSpaceCtrl^M

내 영국 PC에서 키보드는 +에 {있고 내 터미널 에뮬레이터(xterm)를 사용하여 + + 는 + 또는 do와 같은 것을 보냅니다 . AFAICT, 키티는 ++ 에서 아무 것도 보내지 않습니다 .Shift[CtrlShift[^[Ctrl[EscCtrlShift[

CtrlShift+ +(또는 키보드의 해당 키)를 누른 [다음 바인딩할 때 특정 문자나 문자 시퀀스를 보내 도록 언제든지 구성할 수 있습니다.저것tmux 구성의 무언가에.

예를 들어 다음과 같습니다.

map ctrl+shift+[ send_text all \x1b[23~
map ctrl+shift+] send_text all \x1b[24~

에서는 합계 키와 동일한 시퀀스가 ​​전송됩니다( ~/.kitty/kitty.conf여기 에서는 kittyESC F11라고도 함 ).F12\x1b^[

이를 tmux 구성에 바인딩할 수 있습니다.

bind-key -n "F11" previous-window
bind-key -n "F12" next-window

관련 정보