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