如何在emacs模式下保持M-x上的传统绑定

如何在emacs模式下保持M-x上的传统绑定,emacs,elisp,evil-mode,Emacs,Elisp,Evil Mode,我正在尝试在正常模式下将execute extended命令绑定到M-x。 我现在有 ;; evil mode (require 'evil) (evil-mode 1) (define-key evil-normal-state-map "M-x" 'execute-extended-command) 在我的.emacs文件中,但键绑定不起作用。我试着换了 "M-x" 与 及 但两者都不起作用。我还尝试将其添加到evil.el和evil maps.el。我不知道您的绑定有什么问题。您可以

我正在尝试在正常模式下将execute extended命令绑定到M-x。 我现在有

;; evil mode
(require 'evil)
(evil-mode 1)

(define-key evil-normal-state-map "M-x" 'execute-extended-command)
在我的.emacs文件中,但键绑定不起作用。我试着换了

"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)


经过长时间的研究,在irc上的#emacs和#邪恶模式频道的帮助下,我的emacs被破坏了。这是我在另一个emacs版本(来自debian jessies repos)上尝试过的快照,它工作正常。

那么您是否特别希望在插入模式下将其他东西映射到
M-x
(kbd "M-x")
 ;; 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)
 (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)