어떻게 작동하나요?

어떻게 작동하나요?

urxvt에서 실행되는 emacs에서 인식될 수 있습니까 Hyper? 내가 아는 한, hyper+ something와 일반 unmodified 를 구별하지 않습니다 something. 내가 아는 한, urxvt 자체는 수정자를 인식합니다. 하지만 emacs가 그것을 할 수 있는지, 그렇다면 어떻게 구성해야 하는지 모르겠습니다.

답변1

xmodmap예, 아마도 이나 수정자를 사용할 필요가 없을 것입니다. ~/.Xdefaults다음과 같이 바인딩하면 됩니다.

URxvt.keysym.XF86AudioPlay: string:\030@m
URxvt.keysym.Menu: string:\030@s
URxvt.keysym.Muhenkan: string:\030@h

어떻게 작동하나요?

중요한 이벤트를 처리하는 방법에 대한 자세한 설명은 다음을 참조하세요.키보드 입력과 텍스트 출력은 어떻게 작동합니까?첫 번째.

TL;DR: "Ca"를 예로 들어보겠습니다. emacs는 "Ctrl down, a down, a up, ctrl up"을 수신하지 않습니다. urxvt는 이를 수신하여 다음으로 변환합니다 \1(예, ctrl- 시퀀스는 짧습니다. C-a에 매핑 \1, C-b에 매핑 \2, C-c에 매핑 \3등).

urxvt가 이스케이프 시퀀스를 보낼 때 프로세스가 끝날 때 수정이 발생했습니다. 나는 urxvt \030@m에게 emacs로 보내달라고 요청했습니다. 즉, C-x @ m(man ascii를 보면 왼쪽 열의 030이 오른쪽 열의 X와 편리하게 정렬됩니다). C-x @ m메타 수정자를 추가하고, C-x @ s슈퍼 수정자를 추가하고, C-x @ h하이퍼 수정자를 추가합니다(참조:https://www.gnu.org/software/emacs/manual/html_node/emacs/Modifier-Keys.html).

내 키보드에는 XF86AudioPlay, Menu 및 Muhenkan 키가 Ctrl 키 근처에 편리하게 배치되어 있어 메타, 슈퍼 및 하이퍼에 바인딩됩니다.

C-x @ s더 나은 해결책이 있을 수 있습니다. 사람들이 이 작업을 수행할 때 사용하도록 설계된 해결 방법을 사용하는 대신 emacs가 메타 및 슈퍼 이스케이프 시퀀스를 수신하고 올바른 시퀀스를 직접 보내는 방법을 이해해야 합니다.아니요이미 핵심을 말했습니다.

관련 정보