>
wdired-mode-map에 바인드 키를 시도하면

emacs에서 오류가 발생합니다.

(define-key wdired-mode-map (kbd "TAB") 'my-mark-file-name-forward )
(define-key wdired-mode-map (kbd "-") 'my-mark-file-name-backward )
(define-key wdired-mode-map (kbd "<f2>") 'my-mark-file-name-for-rename )

오류는 :

Symbol's value as variable is void: wdired-mode-map

여기서 무슨 일이 일어나고 있는지 실마리가 있습니까? 나는 항상 이와 같은 다른 모드의 키를 정의합니다.

  • 답변 # 1

    wdired-mode-map  원하는 경우 wdired-mode를 사용한 후에 만 ​​사용 가능 키맵을 변경하려면 "모드 훅"( wdired-mode-hook )을 사용할 수 있습니다 )

    (add-hook 'wdired-mode-hook
              (lambda () (define-key wdired-mode-map ...)))
    
    

    또는 with-eval-after-load

    (with-eval-after-load "wdired"
      (define-key wdired-mode-map ...))
    
    

  • 답변 # 2

    일반적으로 변수 또는 함수가 void 인 경우 가장 가능성이 높은 것은 해당 라이브러리가 아직로드되지 않았다는 것입니다. 두 가지 일반적인 접근법은 require 입니다.   (require 'wdired) 와 함께 사전에 라이브러리  또는 (eval-after-load "wdired" '(progn ...)) 를 사용하십시오 . Emacs가 더 빨리 시작하기 때문에 많은 사람들이 두 번째 옵션을 선호합니다.

  • 이전 깊이 중첩 된 각도 구성 요소로 데이터 전송
  • 다음 emacs - 조직의 읽기 목록