符号的值作为变量是void:dired-mode-map

时间:2015-06-22 21:07:30

标签: emacs elisp

我试图像这样重新映射一些密钥:

(add-hook 'dired-mode-hook
  (lambda ()
    (require 'dired )
    (define-key dired-mode-map (kbd "M-o") nil)))
    (define-key dired-mode-map (kbd "M-o") 'other-window)
    ))

不幸的是,这似乎不起作用,我收到此错误

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

哪个是werid,因为我应该在dired中加载。我能做错什么?

1 个答案:

答案 0 :(得分:6)

原始海报在这一点上有两(2)个[双关语]右括号:(define-key dired-mode-map (kbd "M-o") nil))) - 即,需要消除该行末尾的两(2)个右括号。此外,在重新定义之前,我没有理由将绑定设置为nil

以下是实现同一目标的另一种方式。根据需要在progn语句后添加任何其他键绑定。

(eval-after-load "dired" '(progn
  (define-key dired-mode-map (kbd "M-o") 'other-window) ))