Subject: Re: What is a good scheme editor?
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 27 Sep 2001 08:49:57 GMT
Newsgroups: comp.lang.scheme
Message-ID: <9oup7l$n4u6p$1@fido.engr.sgi.com>
Thant Tessman  <thant@acm.org> wrote:
+---------------
| emitch wrote:
| > Emacs is definately the best.
| 
| Be careful. Unless you learn to use the Ctrl keys on both sides of the 
| keyboard and otherwise have good typing style, more than a decade of 
| emacs will destroy your hands.
+---------------

Which is why I don't use it. I've never managed to get my hands to
work that way at *all*, much less for a decade...

+---------------
| With that caveat, there is no other editor for Scheme.
+---------------

I am an acknowledged heretic then. I use "vi" (well, "nvi-1.79")
for editing both Scheme and Common Lisp, and am quite happy with it.
It works the way *my* fingers do from decades of using "moded"
editors (starting with TECO, then various Xerox tools, then "vi"),
in which the editing commands are (mostly) lowercase letters.

It's certainly not as whizzo as Emacs, but is definitely "good enough"
for me. It has decent-enough autoindenting [enough to format Lisp
properly with some manual help, even if it doesn't *enforce* proper
indenting or do form-dependent indenting for you], parentheses
matching/flashing, and the "%" (go to matching paren) operator can
be used for a lot more than just moving around. For example, with
the cursor on an open paren, "d%" will delete the entire S-expr
("y%" to just copy it), then move somewhere and "p" to paste it.

To "step over" a series of S-exprs, just type "% " (percent+space)
for each. Stepping "in" or "out one or more levels isn't much harder.

And it has both "abbreviation" & "command" macros, so you can automate
frequently-typed sequences.

If you want *really* fancy and/or custom reformatting, try Dorai Sitaram's
"scmindent". <URL:http://www.cs.rice.edu/~dorai/scmindent/scmindent.html>
Just type "!%scmindent" to pipe an S-expr through it.

So while "vi" will never be as perfectly tuned to Lisp or Scheme
as Emacs is, for me it's good enough...


-Rob

p.s. "nvi-1.79" *does* have  hooks for extensibility with Perl or
     Tcl (or your favorite scripting interpreter). It shouldn't be
     too hard to bolt something like "tinyscheme" or even MzScheme
     onto it.

-----
Rob Warnock, 30-3-510		<rpw3@sgi.com>
SGI Network Engineering		<http://reality.sgi.com/rpw3/> [R.I.P.]
1600 Amphitheatre Pkwy.		Phone: 650-933-1673
Mountain View, CA  94043	PP-ASEL-IA

[Note: aaanalyst@sgi.com and zedwatch@sgi.com aren't for humans ]