特别是,当我加载dired-x时,它设置M-o以切换省略次模式。我使用M-o作为其他窗口,所以我想更改dired-x绑定到其他东西的键。我试图在模式加载后设置密钥:
(add-hook 'dired-mode-hook
(lambda ()
(dired-omit-mode 1)
(global-set-key (kbd "M-o") 'other-window)
))
但无济于事。
答案 0 :(得分:7)
稍微好于将自定义全局绑定的另一个副本添加到本地模式映射,将删除本地绑定,以便它不再隐藏全局绑定。在执行此操作之前,您可能还会为该函数指定一个新密钥。
(eval-after-load "dired-x"
'(progn
;; Add an alternative local binding for the command
;; bound to M-o
(define-key dired-mode-map (kbd "C-c o")
(lookup-key dired-mode-map (kbd "M-o")))
;; Unbind M-o from the local keymap
(define-key dired-mode-map (kbd "M-o") nil)))
答案 1 :(得分:5)
dired-mode绑定“遮蔽”全局绑定,因此你的“全局设置键”没有帮助。你想要做的是覆盖dired-mode绑定:
(add-hook 'dired-mode-hook
(lambda ()
(dired-omit-mode 1)
(define-key dired-mode-map (kbd "M-o") 'other-window)
))