我如何在.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)
我可以用任何方式参考这些功能吗?
答案 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
来获取所有绑定的列表。