2014-02-09 4 views
1

실행 취소 트리 모드를 사용하고 싶습니다. 실행 취소/다시 실행 키 바인딩을 성공적으로 설정했습니다.Emacs - 키 다시 바인딩이 작동하지 않습니다.

그러나 내가 쓰는 주석 기능으로 기본값 C-/ 바인딩을 덮어 쓰려고하면이 조합은 여전히 ​​실행 취소 - 트리 - 실행 취소에 바인딩됩니다. 여기

내가 뭘하려 : 내 - 주석 - 함수가 호출 될 수 있도록 내-기능 후로드가

(eval-after-load 'my-functions 
    '(eval-after-load 'undo-tree 
    '(define-key global-map (kbd "C-/") 'my-commenting-function))) 

.

Undo Tree Mode (Undo Tree Mode)를 활성화 한 상태에서 C-/은 여전히 ​​un-tree-undo가되고 my-commenting-function은 바인딩되지 않습니다.

에 대한 실행 취소 트리 모드 키 바인딩을 어떻게 C-/의 원하는 기능으로 변경할 수 있습니까?

답변

4

것은 글로벌 바인딩을 정의하기 위해이 작업을 수행합니다 :

(global-set-key (kbd "C-/") 'my-commenting-function) 

이 작업을 수행 그것을 무시에서 작은 정지 모드로 :

@는 ABO-ABO 문제에 언급했듯이
(define-key undo-tree-map (kbd "C-/") nil) 
1

이 순서입니다 키 바인딩이 평가됩니다. 당신이 이맥스 문서 (http://www.gnu.org/software/emacs/manual/html_node/elisp/Active-Keymaps.html#Active-Keymaps)을 읽는 경우에 당신은 키맵이 순서로 검색되어 표시됩니다 당신이 설명 앨리어싱의 종류를 피하는 두 가지 방법이 있습니다

keymap, minor mode maps, local keymap, global keymap 

. 충돌하는 부 모드 키맵을 수정하거나 버퍼 키맵을 직접 설정하십시오 (예 : 후크 기능 사용). 또한 C-c 'letter'는 사용자 매핑 용으로 예약되어 있으며 이론 상 다른 모드로 덮어 쓰면 안되므로 그러한 바인딩 중 하나를 대신 사용하는 것이 좋습니다.

+1

키 맵핑을위한 마이너 모드 키맵을 만드는 또 다른 방법이 있습니다. 나는 여기에 사용자가 * scottfrazer * (71 + upvotes 내가이 입력) 설명하고 그것을 잘 작동하고 (C -/* 실행 취소 - 트리지도 * OP 자신의 질문에 언급 된 재정의 잘 작동하는 것 같다) : http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs – TacticalCoder

관련 문제