我正试图像这样重新映射一些密钥:
(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)
))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎不起作用,我得到这个错误
Symbol's value as variable is void: dired-mode-map
Run Code Online (Sandbox Code Playgroud)
这是不可思议的,因为我应该加载到dired.我能做错什么?
原始海报在这一点上有两(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) ))
Run Code Online (Sandbox Code Playgroud)