从Evil命令模式使用'execute-extended-command'(M-x未定义)

时间:2015-02-24 18:43:24

标签: emacs evil-mode

我刚开始尝试使用emacs。作为Vim用户,我不想在没有安装恶魔模式的情况下使用它。

然而,邪恶模式似乎打破了'execute-extended-command'(M-x)的emacs键绑定。

我真的不关心这个键绑定,我注意到我可以从邪恶的命令模式中调用例如'list-packages',它运行得很好。 我现在唯一缺少的是命令模式下的TAB自动完成,比如键入'list-'TAB然后它将显示或迭代可用命令。 这可能与邪恶模式有关吗?

还是最终有一种简单的方法来修复此键绑定?

我正在使用:

  • debian jessie
  • GNU Emacs 24.4.1

修改

我的.emacs文件:

(require 'package)
(push '("marmalade" . "http://marmalade-repo.org/packages/")
    package-archives )
(push '("melpa" . "http://melpa.milkbox.net/packages/")
    package-archives)

(add-to-list 'load-path "~/.emacs.d/evil")
(require 'evil)
(evil-mode 1)

(define-key evil-normal-state-map [escape] 'keyboard-quit)
(define-key evil-visual-state-map [escape] 'keyboard-quit)
(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)

我尝试添加Modifier-x

(global-set-key (kbd "C-x") 'execute-extended-command)

和Alt-x

(global-set-key (kbd "A-x") 'execute-extended-command)

但是这些尝试没有修复键绑定,所以我决定使用超级键滚动

(global-set-key (kbd "s-x") 'execute-extended-command)

1 个答案:

答案 0 :(得分:0)

修复键盘绑定非常简单 - 只需将此行添加到.emacs文件中(或在临时缓冲区中对其进行评估):

(global-set-key (kbd "< put your key combination here >") 'execute-extended-command)

您可以使用reference from ErgoEmacs了解如何为kbd功能提供密钥组合。

IMO最好使用标准Emacs来运行命令 - 使用evil-mode命令模式处理与邪恶相关的事情,并使用M-x / execute-extended-command工作与Emacs。