Most Lisp developers consider emacs preferable to vi since it can be customized to indent, balance parens, highlight code, and most importantly run Lisp within a separate buffer with a tightly integrated compile/test cycle. However, for those already familiar with vi who aren't yet ready to make the switch to emacs, vi can do two of the most important functions of an editor for Lisp: balance your parens and assist with indentation. (A) "set sm" turns on the blinking of matching parens as you type the close paren. I don't think there is any way to have matching parens keep blinking as with XEmacs under X. (B) "set ai" turns on auto-indentation. However, this means that the following line matches the previous line's indentation. It does NOT figure out the indentation needed based on number of open parens, as emacs does. NOTE: Since Lisp functions generally consist of nested function calls, the indentation level is one of the keys to reading Lisp code. So if your editor doesn't do it automatically, take particular care to get it right. On the other hand, since the indentation level indicates the nesting level, Lisp programmers ignore the parens. So putting each close paren on a line by itself is a waste of space in Lisp, and only serves to distract the reader from the key point, which is the nesting level. (C) To my knowledge, there is no way to run Lisp in a vi buffer. But you can avoid restarting Lisp and vi each time by suspending each (Control-z) and jumping to the other via '%lisp' or '%vi'. If you use vi and aren't familiar with this, send me email and I'll give more details. Of course, on X, just make two xterm windows: one for Lisp and one for vi. You won't get incremental compilation, but you won't have to restart the editor and/or Lisp for each change. - Marty hall@apl.jhu.edu