6

我正在使用 ELPA 的 Clojure 模式包。否则一切都很好,但我就是受不了paredit模式。我似乎无法轻易关闭它,现在我只是为我打开的每个缓冲区禁用它。我尝试将此变量设置为零:

(setq clojure-enable-paredit nil)

但是paredit仍然出现。有任何想法吗?

4

3 回答 3

29

不是您实际问题的答案,而是给 paredit 模式一个机会。我也对它自动关闭我的括号并拒绝为我删除一个括号感到非常恼火。

但是这样做可以确保缓冲区始终是一个平衡良好的 sexp,因此它可以为您执行许多有用的面向 sexp 的任务,而不仅仅是面向文本的任务。例如,我一直使用以下内容

  • M-( 用一个新的包装一个sexp,例如(map f some-list)变成(doto (map f some-list) println)
  • C-) 将另一种性“啜”到当前的性中,例如(let [x 10]) (println x)变成(let [x 10] (println x))
  • M-<UP> 和/或 Mr 将 sexp 拉到源树中“更高”级别的点,破坏包装它的东西,例如(first (map f some-list))变成(map f some-list)(first some-list)

有无数这样有用的功能,可以让您开始编辑代码而不是文本。虽然有很多优秀的 Lisp 黑客不喜欢 paredit 模式,但我建议你在意识到它可以为你做的很棒的事情之前不要决定反对它。

于 2011-03-09T09:04:41.673 回答
16

找到了一个有效的技巧。在加载 elpa 包之前init.el,将这个钩子添加到 clojure 模式:

(add-hook 'clojure-mode-hook (lambda () (paredit-mode nil)))
于 2011-03-09T07:07:07.933 回答
0

对于它的价值,我也通过 ELPA 使用 clojure-mode,这并不意味着 paredit。也许只是卸载它?我发现 clojure-mode、slime 和 slime-repl 是我需要在干净的 EMACS 上安装以使 clojure/swank/slime 工作的唯一软件包。

我只测试了这个:

http://www.learningclojure.com/2010/08/clojure-emacs-swank-slime-maven-maven.html

几周前,它仍然可以正常工作。

于 2011-03-09T19:02:38.530 回答