[slime-devel] cutting and pasting S-expressions from buffer to REPL

Faheem Mitha faheem at faheem.info
Mon May 14 19:19:10 UTC 2012



On Mon, 14 May 2012, Stelian Ionescu wrote:

> On Mon, 2012-05-14 at 23:05 +0530, Faheem Mitha wrote:
>> Hello everyone,

>> I've recently started using SLIME with SBCl on Debian, where SLIME
>> defaults to using SBCL, at least when it is installed. So far I am very
>> impressed. I haven't been able to take off and fly yet, but I'm on the
>> runway.:-)

>> I'm particularly impressed by the underlining source which has compile
>> errors, and doing a popup on mouseover feature. I don't know whose idea
>> this was, but it is pretty damn cool. Does anyone know the history of this
>> feature?

>> So, I have a question about SLIME. When debugging, or indeed otherwise, I
>> find it useful to copy and paste S-expressions from a buffer to the REPL.
>> I've been using the mouse for this, which is decidedly sub-optimal. I hate
>> using the mouse. I was thinking that it would be handy to have a command
>> which would copy and paste S-expressions from a buffer to the REPL, while
>> at the same time switching the buffer to the REPL. The S-expression would
>> be chosen by having the cusor to the right of the closing expression. I'm
>> not sure if this position has a name.

>> I don't know if this command already exists. I could not find it in the
>> manual. If it doesn't, could someone tell me what code would tell emacs to
>> do this? My knowledge of Emacs programming is non-existent.

> This is what I have in my .emacs(wasn't written by me and I don't
> remember where I copied it from):

[snip code]

> (define-key slime-mode-map (kbd "C-c s") 'slime-send-dwim)
> (define-key slime-mode-map (kbd "C-c M-s") '(lambda () (interactive) (slime-send-dwim 1)))

Nice! That works for me. However, may I clarify/confirm usage?

If I put the cursor on the closing parenthesis of the expression, then the 
first command just copies it to the REPL, the second copies and then 
evaluates it. Is this correct usage?

> The advantage of using these as opposed to a simple eval-expression is
> that a trace of it remains in the REPL buffer, useful if you're using
> cl:dribble or something similar

Well, like I said earlier, in practice, you may have to modify the 
expression before you can run it.

Personally, I think SLIME could do with a command like this.

Thanks for the nice piece of code, Stelian.

                                                    Regards, Faheem




More information about the slime-devel mailing list