找不到绑定paredit的convolute-sexp的地方

时间:2014-06-07 05:47:46

标签: emacs clojure paredit

奇怪的是,虽然各种paredit cheatsheets显示绑定到paredit-convolute-sexp M - ?,但paredit.el文件对该函数没有任何绑定,尽管它确定功能。我编辑paredit.el将其添加到此处:

 ....
("M-q"  paredit-reindent-defun)
("M-\?" paredit-convolute-sexp)

但是在重新启动emacs之后,它仍然没有绑定到 M - ?。我尝试在绑定中使用"M-?"而没有反斜杠,但没有任何区别。

我也试过这样做:

(defun my-clojure-hook ()
  (auto-complete-mode 1)
  (define-key clojure-mode-map
    (kbd "M-\?" 'paredit-convolute-sexp)))

(add-hook 'clojure-mode-hook 'my-clojure-hook)

也尝试使用和不使用反斜杠。

这也没有任何区别,即使它确实打开了自动完成模式。

有人可以建议我应该把这个绑定放在哪里吗?

1 个答案:

答案 0 :(得分:2)

您在致电kbd时错过了一个紧密的括号。你的钩子应该如下所示(顺便说一句,我不认为你需要逃避问号):

(defun my-clojure-hook ()
  (auto-complete-mode 1)
  (define-key clojure-mode-map
    (kbd "M-?") 'paredit-convolute-sexp))

实际上,对define-key的调用只需要进行一次(例如,在你的.emacs文件中)而不是每次打开一个新的clojure缓冲区,所以你不需要把它本身就是钩子。