2013-10-11 1 views
5

:이맥스 바인딩 해제 [모드의 키 바인딩 다음과 같이 내가 매크로를 사용자 지정 바인딩 키를 생성 한

(global-set-key (kbd "C-C C-c") "\C-a\C- \C-n\M-w\C-y")

문제는 C-c C-cpython-modepython-send-buffer 정의되어 있다는 점이다. 그래서 내 매크로는 파이썬 모드를 제외한 모든 모드에서 작동합니다. 나는 python-mode이 init 파일 다음에 평가되므로, 그 키 바인딩을 덮어 쓴다고 가정하고있다.

C-c C-c을 사용하여 (eval-after-load "python-mode")을 사용하고 global-unset-key을 사용했지만 작동하지 않습니다. 파이썬에서 C-c C-c은 항상 python-send-buffer으로 매핑됩니다.

어떻게 파이썬의 C-c C-c을 완전히 비활성화하고 대신 내 매크로를 사용할 수 있습니까?

저는 Emacs 24.2.1을 사용하고 있습니다.

+0

C-C의 C-C는 모드의 많은 정의된다. 어쩌면 당신은 http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs을 고려해야합니다 – scottfrazer

+1

아니면 다른 키를 사용해보십시오. 'Cc'다음에 제어 키 (예 :'Cc')가 "주요 모드를 위해 예약 됨"입니다. 즉, 주요 모드를 정의하는 Lisp 코드는 그것을 사용할 수 있습니다 (그리고 그들은 종종 Cc Cc를 사용합니다, ScottFrazer 고 말했다. 사용자는 물론 그러한 키를 바인딩 할 수 있지만 주요 모드는 자유롭게 사용할 수 있다는 것을 알고 있으므로 그러한 모드에 사용할 대체 키를 찾아야 할 수도 있습니다 (여기에 대한 해답 참조) . Elisp 매뉴얼, 노드'Key Binding Conventions'을보십시오. – Drew

+0

@Drew 매우 자주 사용하는이 복사 및 붙여 넣기를하기 쉽고 액세스가 쉽고/의미가있는 C-x 바인딩을 찾을 수없는 것 같습니다. – darksky

답변

7
(add-hook 'python-mode-hook 
      (lambda() 
      (local-unset-key (kbd "C-c C-c")))) 
1

이 그것을 수행해야합니다

(add-hook 'python-mode-hook 
      (lambda() 
      (define-key python-mode-map (kbd "C-c C-c") nil)))