[slime-devel] How to wrap code typed at the REPL?

Denis Bueno dbueno at cc.gatech.edu
Thu Jun 29 20:43:20 UTC 2006


Philippe-André Lorin wrote:
> I would like every expression I type at the REPL to be surrounded by a
> wrapper before evaluation. For instance, when I type:
> 
> (+ 2 3)
> 
> I want it to become:
> 
> (wrap (+ 2 3))
> 
> How can I do that?

I wrote this [1] elisp a while back. It might work.

I put [1] in my .emacs, and

   (local-set-key "\C-c\C-w\C-w" 'insert-wrapping-sexp)

in lisp-mode-hook.

Put your cursor on the left-paren of the expression to wrap & hit C-c C-w C-w.

-Denis

[1]
(defun insert-wrapping-sexp ()
   "Insert an s-expression which wraps around the nearest
s-expression. For best results, place the point on the
left-parenthesis of the to-be-wrapped s-expression. (See
`insert-wrapping-expression'.)"
   (interactive)
   (insert-wrapping-expression "(" ")" t))

(defun insert-wrapping-expression (ldelim rdelim &optional space)
   "Insert an expression which wraps around another
   expression. Place the point on the left-most element of the
   to-be-wrapped expression. See insert-wrapping-sexp for an
   example of use."
   (interactive)
   (forward-sexp 1)
   (insert rdelim)
   (backward-char 1)
   (backward-sexp 1)
   (insert ldelim)
   (when space (insert " "))
   (backward-char 1))




More information about the slime-devel mailing list