Emacs가 내 키 코드를 아래로 번역하는 것을 막을 수 있습니까?

Emacs가 내 키 코드를 아래로 번역하는 것을 막을 수 있습니까?

emacs내가 누르는 키 조합(코드)을 두 번 추측하는 기본 동작이 있습니다. 예를 들어 지정되지 않은 키 조합을 누르면 자동으로 더 작은 코드로 하향 변환됩니다.<C-M-up> (translated from <C-M-S-up>)

어떻게 끌 수 있나요?

실제로 그 가치는 보이지 않지만 일부 사용자에게는 확실히 그렇습니다. 또한 이 (모호한) 기능이 어떤 이점을 제공하는지 알고 싶습니다.

답변1

짧은 대답: 변환되지 않은 바인딩 버전으로의 변환을 비활성화하는 쉬운 방법은 없습니다.

바인딩되지 않은 키 시퀀스를 찾으려면 M-x describe-unbound-keys. 바인딩 해제된 것으로 확인됩니다( C-S-up복잡성을 묻는 메시지가 표시되면 입력됨).15

명령은 사용 가능한 라이브러리에서 describe-unbound-keys찾을 수 있습니다.unbound여기위키에서.

더 긴 답변:

관련 문서는 다음에서 찾을 수 있습니다.키 시퀀스 입력그것은 다음과 같이 말합니다:

입력 문자가 대문자(또는 Shift 수정자가 있음)이고 키 바인딩이 없지만 소문자인 경우 read-key-sequence는 해당 문자를 소문자로 변환합니다. 조회 키는 이러한 방식으로 대소문자 변환을 수행하지 않습니다.

분명히 이 동작이 마음에 들지 않지만 이 특정 번역을 변경하려면 keyboard.cEmacs 소스 코드를 수정해야 합니다. 주석을 찾으십시오.

  /* If KEY is not defined in any of the keymaps,
     and cannot be part of a function key or translation,
     and is a shifted function key,
     use the corresponding unshifted function key instead.  */

if그 뒤에 오는 문을 비활성화합니다 .

일반적으로 키보드 번역은 다른 이유로 존재하며(이 답변 상단의 문서 링크에 언급된 대로) 언급된 다양한 키맵을 사용자 정의하여 사용자 정의할 수 있습니다.

답변2

모든 키의 동작을 비활성화하는 설정은 없습니다. 특정 Shift 키 조합의 경우 키를 ignore해당 키에 바인딩하면 Emacs가 키를 Shift 키가 아닌 버전에 자동으로 매핑하는 것을 방지할 수 있습니다.

자동 매핑이 존재하는 이유에 대해 말하자면, 이 시스템의 한 가지 장점은 모든(보통) 소문자 바인딩을 복사할 필요 없이 대문자 전용 터미널에서 Emacs를 사용할 수 있다는 것입니다. GNU Emacs는 이러한 터미널이 여전히 많이 사용되고 있을 때부터 사용되었습니다.

관련 정보