Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Emacs Clojure mode without paredit

I'm using the Clojure mode package from ELPA. Otherwise everything is fine, but I just can't stand paredit mode. I can't seem to turn it off easily, now I just disable it for every buffer I open. I tried setting this variable to nil:

(setq clojure-enable-paredit nil)

But paredit still appears. Any ideas?

like image 503
auramo Avatar asked Mar 09 '11 06:03

auramo


2 Answers

Not an answer to your actual question, but give paredit mode a chance. I, too, was really annoyed with it automatically closing my parens, and refusing to delete just a single paren for me.

But doing this enables it to be certain at all times that the buffer is a well-balanced sexp, so it can perform many useful sexp-oriented tasks for you instead of just text-oriented tasks. For example, I use the following all the time:

  • M-( to wrap a sexp with a new one, eg turn (map f some-list) into (doto (map f some-list) println)
  • C-) to "slurp" another sexp into the current one, eg turn (let [x 10]) (println x) into (let [x 10] (println x))
  • M-<UP> and/or M-r to pull the sexp at point a level "higher" in the source tree, destroying the thing that was wrapping it, eg to turn (first (map f some-list)) into (map f some-list) or (first some-list)

There are zillions of useful features like this, that let you start editing code instead of text. And while there are plenty of excellent Lisp hackers who don't like paredit mode, I advise you not to decide against it before you realize the awesome stuff it can do for you.

like image 132
amalloy Avatar answered Sep 24 '22 08:09

amalloy


Found one trick that works. Before the elpa packages are loaded in init.el, add this hook to clojure mode:

(add-hook 'clojure-mode-hook (lambda () (paredit-mode nil)))
like image 37
auramo Avatar answered Sep 22 '22 08:09

auramo