我正在尝试在邪恶的正常模式下将执行扩展命令绑定到 M-x。我目前有
;; evil mode
(require 'evil)
(evil-mode 1)
(define-key evil-normal-state-map "M-x" 'execute-extended-command)
在我的 .emacs 文件中,但键绑定不起作用。我尝试更换
"M-x"
跟
"M-x"
和
(kbd "M-x")
但两者都不起作用。我还尝试将其添加到evil.el和evil-maps.el中。
你的绑定有什么问题。你可以使用 Emacs 自己的global-set-key
来处理全局内容,如果你计划一些特别的东西,比如插入模式,你可以稍后覆盖它,如下所示:
;; this works, just tested. My evil is 1.0-dev from github.
(global-set-key (kbd "M-x") 'smex)
(define-key evil-insert-state-map (kbd "M-x") 'execute-extended-command)
当绑定中有修饰键时(kdb "")
使用宏。但是,无论内容如何,您都可以始终使用宏。这些是示例用法。如有疑问,请将密钥包装在 (kdb )
中。
(global-set-key (kbd "M-x") 'smex)
(global-set-key (kbd "M-X") 'smex-major-mode-commands)
;;(global-set-key (kbd "M-x") 'execute-extended-command)
(define-key evil-normal-state-map ",d" 'volatile-kill-buffer)
(define-key evil-normal-state-map ",b" 'ido-switch-buffer)
(define-key evil-normal-state-map ",s" 'ispell-word)
(define-key evil-normal-state-map (kbd "C-x g") 'magit-status)
(define-key evil-insert-state-map (kbd "C-f") 'my-expand-file-name-at-point)
(define-key evil-insert-state-map (kbd "C-x C-l") 'my-expand-lines)
(define-key minibuffer-local-map (kbd "C-w") 'backward-kill-word)
(define-key evil-normal-state-map (kbd ",ff") 'ido-find-file)
经过长时间的研究,在 irc 上的 #emacs 和 #evil 模式通道的帮助下,事实证明我的 emacs 坏了。这是我在另一个 emacs 版本(来自 debian jessies 存储库)上尝试所有这些 http://emacs.naquadah.org/的快照,它工作正常。