Emacs Clojure mode without paredit

前端 未结 3 1899
闹比i
闹比i 2021-02-04 19:00

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

相关标签:
3条回答
  • 2021-02-04 19:19

    For what it's worth, I use clojure-mode through ELPA too, and it doesn't imply paredit. Maybe just uninstall it? I find clojure-mode, slime and slime-repl are the only packages I need to install on a clean EMACS to get clojure/swank/slime working.

    I only tested this:

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

    a few weeks ago, and it still works fine.

    0 讨论(0)
  • 2021-02-04 19:24

    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)))
    
    0 讨论(0)
  • 2021-02-04 19:25

    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.

    0 讨论(0)
提交回复
热议问题