Editor-independent advice for working with Lisp
groups.google.com
groups.google.com
1. 'slurp' the token on either side of a list
(|a b c) d -> (|a b c d)
a (|b c d) -> (a |b c d)
2. 'barf' elements from either side of list
(a |b c d) -> (a b c) d
(a |b c d) -> a (b c d)
3. 'drill down' into nearest list
(|a b c (d e f)) -> (a b c (|d e f))
4. 'break out' of current list
(a b c (d e |f)) -> (a b c |(d e f))
5. And more, like 'jump across next list', 'delete next list', etc.
Using any of these commands re-indents the code. It is the best method I have ever encountered in any language environment for doing 'code surgery' like placing existing code inside conditionals. I even use it for C (although it is not nearly as smart about C/C++ as it is about Lisp, so the benefit is not as great - c'est la vie. Perhaps one day I will attempt to hack decent C/C++ support into paredit). If I ever switch to vim, attempting to port paredit will be the first thing I do, and, if I fail, no switch.
Well, that got long. Too bad the original poster on the newsgoup will never see this.
[1] http://www.emacswiki.org/emacs/ParEdit
[2] 'slurp' and 'barf' are the "official" terminologies, by the way
(BTW I'm sure Rob is aware of Paredit. He's been around comp.lang.lisp a long time.)
I agree with the other responder: slime. It is pretty much the only allure for me to emacs, and the only feature I really miss with current vim packages is the intellisense that understands what package I am working in, what new symbols I introduced. I am okay without, but I could probably work slightly faster if I had it.
Same goes for Lispworks, and maybe for AllegroCL.
Difference is emacs communicates with slime to the swanked image, and if that image hangs, your editor is still there - not the same with LispWorks and AllegroCL (but if you are careful, and know when it can explode then it's ok).
http://cycle-gap.blogspot.com/2007/09/extreme-pair-programmi...
The only occasion that parens have bothered me is when I have to read code printed on paper. Some code pieces are too beautiful to resist the temptation of taking a print out for a weekend reading, comment out bits with a pencil, scribble arrows all over it etc. Its then when I have to match tiny parens printed 2-up on a piece of paper that it gets frustrating, my eyes not being what they used to be (but I still print 2-up).
A thought just occurred to me: maybe add a pretty printing mode to a2ps that draws the parens in different sizes and gray scale values. May be some day.
#!/usr/bin/lisp
see section 32.6.2. Scripting with CLISP in this document http://clisp.sourceforge.net/impnotes/quickstart.html
The last time I actually programmed in Lisp was back in the mid-80s for my AI classes at GA Tech. I liked it then.