답변1
당신 말이 맞습니다. 이것은 Ctrl+ + 를 누르면 Meta발생합니다 Up/Down. 터미널은 기능 키와 수정자 조합을 나타내기 위해 이스케이프 시퀀스를 보냅니다.키보드 입력과 텍스트 출력은 어떻게 작동합니까?개요를 확인하고모든 키 조합을 처리할 수 있는 Linux 터미널이 있습니까?이 특정 사례에 대해 자세히 알아보세요.
Zsh는 특정 키 누르기가 합법적인지 여부를 알 수 있는 방법이 없습니다. 버그는 창 관리자(또는 ++ 키 바인딩을 처리하는 데스크탑 환경의 일부 Ctrl) 또는 터미널 에뮬레이터에 존재합니다. 터미널 에뮬레이터에서는 이러한 키 입력이 전혀 표시되지 않아야 하기 때문에 아마도 터미널 에뮬레이터에는 없을 것입니다. 이러한 키 입력은 키보드 단축키로 설정하는 프로그램에 의해 캡처되어야 합니다.MetaUp/Down
당신이 할 수 있는 최선의 방법은 zsh에 대한 해결 방법을 설정하는 것입니다. 아무 작업도 수행하지 않는 이러한 키 시퀀스에 대한 키 바인딩을 추가합니다. 이는 터미널에서 실행되는 다른 응용 프로그램이 아닌 zsh에서만 작동합니다. 전체 문자 시퀀스는 ++ 및 ++ ␛[1;7A
용 입니다 . 여기서 ␛는 이스케이프 문자(바이트 값 27)입니다. +를 누른 다음 zsh에서 키를 누르면 이를 확인할 수 있습니다 (이스케이프 문자는 터미널에 표시됩니다 ). 기본적으로 zsh는 를 읽고 이 이스케이프 시퀀스가 바인딩 해제되어 읽기를 중지한 다음 다음 문자를 일반 삽입으로 처리합니다(사례별로 키 시퀀스가 끝나는 시점을 알 수 있는 방법이 없습니다).CtrlMetaUp␛[1;7B
CtrlMetaDownCtrlV^[
␛[1
bindkey -s '\e[1;7A' ''
bindkey -s '\e[1;7B' ''