Difference between revisions of "Paredit-mode"
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" |
| − | + | "Turn on pseudo-structural editing of Lisp code." | |
| − | (add-hook 'emacs-lisp-mode-hook | + | t) |
| − | (add-hook 'lisp-mode-hook | + | (add-hook 'emacs-lisp-mode-hook 'enable-paredit-mode) |
| − | (add-hook 'lisp-interaction-mode-hook | + | (add-hook 'lisp-mode-hook 'enable-paredit-mode) |
| − | (add-hook 'scheme-mode-hook | + | (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 | + | (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, | |
| − | + | ;; 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) | ||
</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 | + | * [http://mumble.net/~campbell/emacs/paredit.html Quick reference] |
== Tutorial Pages == | == Tutorial Pages == | ||
Revision as of 14:12, 8 July 2013
| 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)