일반적으로 역사적 이유로 emacs는 TAB
키 코드와 C-i
키를 동일하게 취급합니다 ( cf. 기능 키에 대한 emacs lisp 문서 또는 "TAB와?의 차이점은 무엇입니까?"라는 질문에 대한 abo-abo의 답변 .
참고 : 이 게시물에서, 키 코드는
TAB
,<tab>
및C-i
; tab와 Ctrl+ i다른 한편으로는있는 물리적 키보드의 키.그러나 현재 emacs는
TAB
andC-i
를 같은 것으로 처리합니다(equal (kbd "TAB") (kbd "C-i"))
.->t
.
그러나, 우리가 더 이상 컴퓨팅의 구석에 살고 있지 않기 때문에 나는 이것이 매우 성가신 것을 발견합니다 . 이 문제를 해결하기 위해 수행 할 수있는 몇 가지 제안이 있습니다.
"TAB를 변경하지 않고 명령을 Ci에 어떻게 바인딩합니까?"
- Trey 's Solution 이 작동하지 않아 변수
local-function-key-maps
가 변경되지 않았습니다. 변수 를 사용delete
하지 않고 수정하면delq
변수가 수정되지만 resolve ... tab및 Ctrl+ i는 여전히 동일 하지 않습니다 . - 하이퍼 맵으로 번역하는 것은 1980 년대 해결 방법처럼 보입니다 ... Hyper+ i도 사용하고 싶을 것입니다.
- Trey 's Solution 이 작동하지 않아 변수
input-decode-map
to map Ctrl+ i를 사용하여 일부 사후 ASCII 코드 에 매핑하는 것이 거의 내가 찾고있는 것입니다.kbd
매크로 와 함께 제대로 작동하지 않는 한 Ctrl+ 를 묶을 소스 코드의 모든 비트를 수정해야합니다 i. 모든 소스 코드가 올바르게 수정되었다는 점을 고려할 때 이것이 최선의 해결책 일 것입니다.사용
(kbd "<tab>")
에 대한 tab과(kbd "C-i")
(로 변환하는(kbd "TAB")
IE의\t
리터럴을) Ctrl+하는 i 작업을 수행 하지만 당신은 수정해야 할 것 모두 의 잘못된 종류의 사용 소스 파일 tab[읽기 : 키 코드TAB
] 짜증나 인을.
이것은 예를 들어 github 문제 와 emacs.sx 에서 제안되었습니다 .
이러한 솔루션 중 어느 것도 실제 솔루션처럼 보이지는 않지만 기존 버그 의 해결 방법이나 해킹을 고려하고 싶습니다 .
거기 밖으로 방법이 강제로 매핑하는 이맥스 tabto
(kbd "<tab>")
하고(kbd "TAB")
있는 동안 Ctrl+ i에 매핑(kbd "C-i")
이맥스 소스 코드를 modyfing의 짧은?이 방법은 즉, 사용자에게 완전히 보이지 않는해야 tab키 코드와 같은
<tab>
및TAB
동안 바인딩 하나에 매핑해야 Ctrl+ i키 코드와 같은C-i
다른 바인딩에 매핑해야합니다.
덜 심각한 참고 사항 : 이맥스 개발자는 어떤 시점에서 이맥스 소스 코드에서 변경 / 수정 될지 여부를 언급 할 수 있습니까?
kbd
TAB을 [tab]으로 번역하는 것이 좋습니다. Emacs의 사전로드 된 부분에서는 작동하지 않습니다.
TAB
하고C-i
(코드가 아닌 키) 하나의 정의에 의해 동일합니다TAB
.