特别是,当我加载dired-x时,它设置Mo以切换省略的次要模式.我使用Mo作为其他窗口,所以我想更改dired-x绑定到其他东西的键.我试图在模式加载后设置密钥如下:
(add-hook 'dired-mode-hook
(lambda ()
(dired-omit-mode 1)
(global-set-key (kbd "M-o") 'other-window)
))
Run Code Online (Sandbox Code Playgroud)
但无济于事.
稍微好于将自定义全局绑定的另一个副本添加到本地模式映射,将删除本地绑定,以便它不再隐藏全局绑定.在执行此操作之前,您可能还会为该功能提供一个新密钥.
(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)))
Run Code Online (Sandbox Code Playgroud)
直接模式绑定"遮蔽"全局绑定,因此您的"全局设置密钥"无济于事.你想要做的是覆盖dired-mode绑定:
(add-hook 'dired-mode-hook
(lambda ()
(dired-omit-mode 1)
(define-key dired-mode-map (kbd "M-o") 'other-window)
))
Run Code Online (Sandbox Code Playgroud)