Emacs Clojure模式没有paredit

时间:2011-03-09 06:55:45

标签: emacs clojure paredit

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

(setq clojure-enable-paredit nil)

但是paredit仍然出现。有什么想法吗?

3 个答案:

答案 0 :(得分:28)

不是你实际问题的答案,但给了paredit模式一个机会。我也非常生气,因为它自动关闭我的parens,拒绝为我删除一个paren。

但这样做可以让它始终确定缓冲区是一个均衡的性别,因此它可以为您执行许多有用的针对性别的任务,而不仅仅是面向文本的任务。例如,我一直使用以下

  • M-(用一个新的包裹性别,例如将(map f some-list)转为(doto (map f some-list) println)
  • C-)将另一个性别“啜饮”成当前的性别,例如将(let [x 10]) (println x)转变为(let [x 10] (println x))
  • M-< UP>和/或先生将sexp拉到源树中“更高”的水平,摧毁包裹它的东西,例如将(first (map f some-list))变成(map f some-list)(first some-list)

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

答案 1 :(得分:16)

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

(add-hook 'clojure-mode-hook (lambda () (paredit-mode nil)))

答案 2 :(得分:0)

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

我只测试了这个:

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

几个星期前,它仍然可以正常工作。