我如何在.emacs中引用M-x [command]?

时间:2016-05-26 20:05:47

标签: emacs

我如何在.emacs?

中引用M-x [command]

我复制粘贴了一些使我的Evil命令工作的代码,但我不明白它现在是如何工作的,无法复制它。

我认为它与require有关。

也许我的问题应该是:如何找出包含M-x命令的包?

以下是我的 .emacs 的一部分:

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(package-initialize)

(require 'evil)
(evil-mode 1)

(define-key evil-ex-map "b" 'helm-buffers-list)
(define-key evil-ex-map "e" 'find-file)

以下是init和我想要工作的错误的部分:

; M-x dired
(define-key evil-ex-map "ex" 'list-directory)

; M-x list-buffers
(define-key evil-ex-map "bl" 'list-buffers)

我可以用任何方式参考这些功能吗?

2 个答案:

答案 0 :(得分:2)

您已将e绑定到evil-ex-map键映射中的命令,然后您尝试将序列ex绑定到命令。你不能这样做,因为键入e会在你有机会输入x之前调用第一个命令。 Emacs看到了这个问题并抱怨它:

(error "Key sequence e x starts with non-prefix key e")

复制并粘贴到您的问题中这将是一件非常有用的事情。请始终复制并粘贴实际的错误消息。

答案 1 :(得分:1)

您必须选择其他键序列。例如,您可以尝试这样做:

; M-x dired
(define-key evil-ex-map "x" 'list-directory)

; M-x list-buffers
(define-key evil-ex-map "l" 'list-buffers)

现在,在"邪恶模式",如果你输入字母" x",这将调用list-directory,如果你输入字母" l& #34;,这将调用函数list-buffers

我不知道"邪恶模式"。因此,在选择一个字母(例如" x"或" l")之前,您应该通过键入C-h k x或{{来检查此字母是否已绑定到某个有用的功能1}}。

您可以通过在使用C-h k l的缓冲区中键入C-h b来获取所有绑定的列表。