奇怪的是,虽然各种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)
也尝试使用和不使用反斜杠。
这也没有任何区别,即使它确实打开了自动完成模式。
有人可以建议我应该把这个绑定放在哪里吗?
答案 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缓冲区,所以你不需要把它本身就是钩子。