Difference between revisions of "Paredit-mode"

From WikEmacs
Jump to navigation Jump to search
(Suggest enable-paredit-mode rather than (lambda () (paredit-mode +1)). Fix indentation. Call the quick reference what it is; don't dignify it by calling it `documentation'.)
Line 14: Line 14:
  
 
<source lang="lisp">
 
<source lang="lisp">
(autoload 'paredit-mode "paredit"
+
(autoload 'enable-paredit-mode "paredit"
      "Minor mode for pseudo-structurally editing Lisp code." t)
+
  "Turn on pseudo-structural editing of Lisp code."
(add-hook 'emacs-lisp-mode-hook      (lambda () (paredit-mode +1)))
+
  t)
(add-hook 'lisp-mode-hook            (lambda () (paredit-mode +1)))
+
(add-hook 'emacs-lisp-mode-hook      'enable-paredit-mode)
(add-hook 'lisp-interaction-mode-hook (lambda () (paredit-mode +1)))
+
(add-hook 'lisp-mode-hook            'enable-paredit-mode)
(add-hook 'scheme-mode-hook          (lambda () (paredit-mode +1)))
+
(add-hook 'lisp-interaction-mode-hook 'enable-paredit-mode)
 +
(add-hook 'scheme-mode-hook          'enable-paredit-mode)
 
</source>
 
</source>
  
Line 35: Line 36:
  
 
<source lang="lisp">
 
<source lang="lisp">
(add-hook 'slime-repl-mode-hook (lambda () (paredit-mode +1)))
+
(add-hook 'slime-repl-mode-hook 'enable-paredit-mode)
 
</source>
 
</source>
  
Line 41: Line 42:
  
 
<source lang="lisp">
 
<source lang="lisp">
;; Stop SLIME's REPL from grabbing DEL,
+
;; Stop SLIME's REPL from grabbing DEL,
;; which is annoying when backspacing over a '('
+
;; which is annoying when backspacing over a '('
(defun override-slime-repl-bindings-with-paredit ()
+
(defun override-slime-repl-bindings-with-paredit ()
  (define-key slime-repl-mode-map
+
  (define-key slime-repl-mode-map
      (read-kbd-macro paredit-backward-delete-key) nil))
+
    (read-kbd-macro paredit-backward-delete-key)
      (add-hook 'slime-repl-mode-hook 'override-slime-repl-bindings-with-paredit)
+
    nil))
 +
(add-hook 'slime-repl-mode-hook 'override-slime-repl-bindings-with-paredit)
 
</source>
 
</source>
  
Line 59: Line 61:
 
* [http://mumble.net/~campbell/emacs/paredit.el Stable Version]
 
* [http://mumble.net/~campbell/emacs/paredit.el Stable Version]
 
* [http://mumble.net/~campbell/emacs/paredit-beta.el Beta Version]
 
* [http://mumble.net/~campbell/emacs/paredit-beta.el Beta Version]
* [http://mumble.net/~campbell/emacs/paredit.html Official documentation]
+
* [http://mumble.net/~campbell/emacs/paredit.html Quick reference]
  
 
== Tutorial Pages ==
 
== Tutorial Pages ==

Revision as of 14:12, 8 July 2013

Paredit
Description structural editing of S-expression data
Author Taylor Campbell
Maintainer Taylor Campbell
Source http://mumble.net/~campbell/emacs/paredit.el

Paredit is a minor mode for performing structured editing of S-expression data. The typical example of this would be Lisp or Scheme source code.

Paredit helps keep parentheses balanced and adds many keys for moving S-expressions and moving around in S-expressions.

Basic setup

(autoload 'enable-paredit-mode "paredit"
  "Turn on pseudo-structural editing of Lisp code."
  t)
(add-hook 'emacs-lisp-mode-hook       'enable-paredit-mode)
(add-hook 'lisp-mode-hook             'enable-paredit-mode)
(add-hook 'lisp-interaction-mode-hook 'enable-paredit-mode)
(add-hook 'scheme-mode-hook           'enable-paredit-mode)

Helpful keybindings

[C-M-f]
Forward sexp
[C-M-b]
Backward sexp

Common Customization

SLIME REPL

(add-hook 'slime-repl-mode-hook 'enable-paredit-mode)

SLIME’s REPL has the very annoying habit of grabbing DEL which interferes with paredit’s normal operation. To alleviate this problem use the following code:

;; Stop SLIME's REPL from grabbing DEL,
;; which is annoying when backspacing over a '('
(defun override-slime-repl-bindings-with-paredit ()
  (define-key slime-repl-mode-map
    (read-kbd-macro paredit-backward-delete-key)
    nil))
(add-hook 'slime-repl-mode-hook 'override-slime-repl-bindings-with-paredit)

See Also

Project Pages

Tutorial Pages

External Links