【问题标题】:Can't find a place to bind paredit's convolute-sexp找不到绑定 paredit 的 convolute-sexp 的地方
【发布时间】:2014-06-07 05:47:45
【问题描述】:

奇怪的是,虽然各种 paredit 备忘单显示 M-? 绑定到 paredit-convolute-sexp,但 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)

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

这也没什么区别,尽管它确实可以很好地打开自动完成模式。

谁能告诉我应该把这个绑定放在哪里?

【问题讨论】:

    标签: emacs clojure paredit


    【解决方案1】:

    您在调用kbd 时缺少一个右括号。你的钩子应该如下所示(顺便说一下,我认为你不需要转义问号):

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

    实际上,对define-key 的调用只需要进行一次(例如,在您的 .emacs 文件中),而不是每次您打开一个新的 clojure 缓冲区时,因此您不需要将其放入挂钩中本身。

    【讨论】:

    • 很高兴为您提供帮助!享受吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2016-08-01
    • 2021-09-07
    • 2015-07-21
    • 2011-10-14
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多