zsh의 삽입 모드에서 명령 바인딩에 두 문자(예: ^tm)를 사용할 수 있습니까?

zsh의 삽입 모드에서 명령 바인딩에 두 문자(예: ^tm)를 사용할 수 있습니까?

내 현재 .zshrc파일 에는

bindkey -M viins -s '^tm' '^[Iman ^[Ela ^[d$'

그런데 이게 안되는데 삭제하면바로가기에서는 이제 ^t바로가기만 작동합니다. 나는 그것을 원한다 ^tm.

어떤 아이디어가 있나요?

답변1

작동하지만 빨리해야합니다. 일련의 문자를 바인딩할 수 있지만 아이디어는 이를 다음과 같이 바인딩하는 것입니다.열쇠일련의 문자를 보냅니다.

Home예를 들어, 많은 터미널은 이 키를 누르면 .을 보냅니다 ^[[1~. 첫 번째 문자는 vi 삽입 모드에서도 바인딩되는 ESC입니다. 따라서 무언가를 바인딩하는 것이 자체적으로 작동을 멈추지 ESC[1~않는 것이 중요합니다 .ESC

zsh$KEYTIMEOUT설정(기본값은 0.4초)을 사용하여 다음 키를 누를 때까지 기다리는 시간, 다중 문자 키를 누를지 또는 여러 개의 단일 문자 키 키를 순서대로 누를지를 결정합니다.

이제 로 시작하는 다른 키 매핑이 없다면 , 특히 별도의 매핑이 ^T없다면 무한정 기다릴 수 있습니다 . 이는 기본 viins 키맵 에 매핑되는 일이 발생하는데 이는 별로 유용하지 않습니다. 따라서 간단하게 제거할 수 있습니다.^Tzshm^Tself-insert

bindkey -Mviins -r '^T'

당신이 원하는 것을 할 것입니다.

run-help그런데 위젯 에 바인딩하고 싶을 수도 있습니다 .

관련 정보