奇怪的是,虽然各种 paredit 备忘单显示 M-? 绑定(bind)到 paredit-convolute-sexp
,但 paredit.el
文件却没有尽管它确实定义了该函数,但该函数没有任何绑定(bind)。我编辑了 paredit.el
将其添加到此处:
....
("M-q" paredit-reindent-defun)
("M-\?" paredit-convolute-sexp)
但是重启emacs后,仍然没有绑定(bind)到M-?。我尝试在绑定(bind)中仅使用 "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)
还尝试过使用和不使用反斜杠。
这也没有什么区别,即使它确实打开了自动完成模式。
谁能告诉我应该把这个绑定(bind)放在哪里?
最佳答案
您在调用 kbd
时缺少右括号。你的钩子(Hook)应该如下所示(顺便说一句,我认为你不需要转义问号):
(defun my-clojure-hook ()
(auto-complete-mode 1)
(define-key clojure-mode-map
(kbd "M-?") 'paredit-convolute-sexp))
实际上,对 define-key
的调用只需要调用一次(例如,在您的 .emacs 文件中),而不是每次打开新的 clojure 缓冲区时调用,因此您不必需要将其本身放入钩子(Hook)中。
关于emacs - 找不到地方绑定(bind) paredit 的 convolute-sexp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24094143/