emacs에서 주요 모드 특정 키 바인딩 설정


9

.emacs파일에서 특정 주요 모드 ( 커피 모드로 설정) coffee-compile-file에 대한 키 바인딩을 추가하고 싶습니다 C-c C-c.

local-set-keyand 사용에 대한 많은 지침을 찾았 global-set-key으므로 커피 모드에서 파일을 열면이 바인딩을 쉽게 추가 할 수 있지만이를 처리하는 것이 .emacs좋습니다.

답변:


8

모드 훅을 사용하십시오. C-h m지원하는 후크를 포함하여 주 모드에 대한 정보를 표시합니다. 그런 다음과 같은 일을

(add-hook 'coffee-mode-hook ;; guessing
    '(lambda ()
       (local-set-key "\C-cc" 'coffee-compile-file)))

6

모드 별 맵에서 다음과 같은 키를 정의 할 수 있습니다.

(add-hook 'coffee-mode-hook
    (lambda ()
        (define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))

또는 더 깨끗하게 :

(eval-after-load "coffee-mode"
    '(define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file))

두 번째 명령문은 키 정의가 한 번만 발생하는 반면, 첫 번째 명령문 coffee-mode은 활성화 될 때마다 (오버 킬) 정의가 발생합니다 .


2
참고 :이 부분은 잘못된 곳에 있습니다. 이 추가 후크는 다음과 같아야합니다. (add-hook 'coffee-mode-hook (lambda () (define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))
owenmarshall

또한 왜 후크에 정의합니까?
Nikana Reklawyks

@NikanaReklawyks 맞습니다. 후크에 정의하는 것은 eval-after-load이 경우에 문장 을 사용하는 것만 큼 깨끗하지 않습니다 . 답변을 적절히 업데이트하겠습니다.
Trey Jackson

3

Emacs 24.4는 ​​다음으로 대체 eval-after-load되었습니다 with-eval-after-load.

** New macro `with-eval-after-load'.
This is like the old `eval-after-load', but better behaved.

답은

(with-eval-after-load 'coffee-mode
  (define-key coffee-mode-map (kbd "C-c C-c") 'coffee-compile-file)
  (define-key erlang-mode-map (kbd "C-c C-m") 'coffee-make-coffee)
  ;; Add other coffee commands
)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.