은 공통 - 모드는 글로벌 레벨에서 결합 숨어 c-hungry-delete-forward
, 수 c-mode-base-map
에서 C-C에서 C-D을 정의한다. 그래서,이 문제를 해결하기 위해 더 나은 방법은 UNDEFINE에있는 cc-mode
만든 것을 바인딩, 당신은 할 그 다음과 같은 :
(eval-after-load "cc-mode"
'(define-key c-mode-base-map (kbd "C-c C-d") nil))
또한 후크에 그것을 할 수 있지만, 내가 eval-after-load
를 선호 그것 때문에 단지 한 번 실행됩니다.
참고 : 나는 결정 c-mode
에서 파일을 열고 입력하여, 기존의 바인딩 채널 Ck를 참조 카드뮴 (일명 MX 설명 결합 참조 카드뮴), 그리고 보는 :
참조를 Cd는`cc-cmds.el '에 대화 형 컴파일 된 Lisp 함수 인 c-hungry-delete-forward 명령을 실행합니다.
이
가 만든 그 바인딩이 (중 하나)
c-mode
의에서 설정, 그래서 내가 찾은 그러자 난 그냥
c-hungry-delete-forward
의 소스 파일을 열어 (또는
grep
ED) 된 것을 매우 명확 :
(define-key c-mode-base-map "\C-c\C-d" 'c-hungry-delete-forward)
그리고 그 대답은 곧장 나아졌습니다.
가 나는을 재정의 UNDEFINE 지방 원하는 글로벌 바인딩을 숨길 바인딩보다는 더 나은 것 같아요. 문제가되는 바인딩을 찾아내는 것만 큼 많은 작업이 필요합니다.이 방법으로 전역 바인딩의 기능을 변경하려면 한 곳에서해야합니다.
감사합니다. 나중에 참조 할 수 있도록, 다른 모드가 정의한 것을 어떻게 발견 했습니까? 어딘가에 파일이 있습니까? – Jon
@ 존 (Jon) 나는 그 일을 돕기 위해 답을 업데이트했으나 완전히 단순하지는 않다. –