[comp.editors] New Version of CRISP Editor Available

msb@cup.portal.com (Mark Steven Bilk) (04/03/91)

A new version of the CRISP editor is available from the author, Paul Fox, on a
shareware basis.  It is some 20 revisions beyond the 1989 version (1.9).

Write to:

   Paul Fox
     8 Theobalds Way
       Frimley
         Surrey GU16 5RF
           England

   Home phone: +44 276 670 603

Paul has no Net access at the moment, but mail between the US and UK usually takes only
a week.  UPS or FedEx can be used for greater reliability.
   
Probably the best time to reach him by phone is at 8 pm in England, which is 12
noon in California.  Phone rates at this time are about $.90/minute ($54/hour,
not unlike consulting rates).

If you have a Sun SPARCstation you can send a 1.44MB (high-density) 3 1/2"
diskette; otherwise call or write for media arrangements.

You get the executable binary, the macros, and the macro compiler, so you can
modify most of CRISP's behavior (including all key bindings) and add your own
new routines.  The documentation is present in a menu driven, on-line help
system.

The cost is $75 if you decide to use the software.  

I have been using the old 1989 version for several weeks and it is excellent.
We recently received the new release, but I haven't had time to unpack it yet.
Paul tells me it has bug fixes, better documentation, and additional features,
including a mapping macro for Sun's current (Type 4) keyboard, used on
SPARCstations and Sun 4's.

                              *    *    *    *    *

Recently, Rasmus Lerdorf posted to this newsgroup:

>v1.9 under AT&T SVR3.2.  Someone almost simultaneously posted a message
>about a Crisp mailing list to which I sent a message.  I have yet to get

Would someone please re-post the info about the CRISP mailing list?

Or e-mail it to me at: 

                  bilk@relgyro.stanford.edu
       
              or  msb@cup.portal.com

                              *    *    *    *    *

I have programmed under MSDOS for the last 8 years (editing with BRIEF), and on
mini-computers for most of the 20 years before that.  So when I began working
with Unix (a much better operating system than MS-DOS) two months ago, I
expected it to have superior source code editing tools.  I surveyed all the
editors the consultants could tell me about.  What I found was rather
disappointing:

*  vi can't provide more than one window onto a text file.  Three or four
   windows are commonly needed to simultaneously view global variables, a
   subroutine and the code that calls it, source and destination of code to be
   copied or moved, etc.  Nor is it possible to open two or more copies of vi
   in different SunView (or X) windows, each editing a different part of the
   same file.  They would corrupt the file when they wrote to it.
   
   vi also has a difficult user interface and requires a change of mode even to
   move the cursor off the current line.

*  FrameMaker (a desk-top publisher) can open the same file multiple times, but
   these windows don't know about one another.  The result again is file
   corruption.

*  The Sabre-C programming environment provides very powerful debugging
   facilities.  Its mouse-based editor, however, allows only one window onto a
   file.

*  BRIEF can run inside a Sparc-emulated MS-DOS window.  However, these windows
   are limited to 25 lines of text, which is insufficient for real programming.
   If several windows are opened, each displays about five lines, too little to
   work with effectively.

   I asked two Sun people, a consultant and a sales rep, if anything could be
   done to increase the size of these windows or to get me the source code so I
   could do it.  Both were doubtful but said they would check and get back to
   me; I'm still waiting.  However, they did mention Sun's generous offer to
   give us more lines of text by selling us a special VGA-type video card and
   monitor for only $3000.  I told them I'd let them know (and I will, too, as
   soon as I can figure out why they are so darned reluctant to let us fix that
   window software!)

*  Textedit, the SunView mouse editor, can view a file through large multiple
   windows.  It has severe problems, however, in the area of text selection,
   one of the most frequent editing operations.  Text can only be selected by
   means of the mouse, and the mouse arrow must be aligned very precisely to
   get the selection right.  Often, the selection will gain or lose a few
   characters unless the mouse is held absolutely still while pressing the
   buttons.  This video game "point and shoot" activity makes editing take
   about three times longer than with a purely keyboard oriented interface.
   
   Textedit is also not programmable, which means its shortcomings cannot be
   fixed.
   
*  EMACS was the editor recommended by the Unix experts I asked.  However, they
   admitted that they tell people to use it so that they (the experts) will
   have only one editor to support on all machines.  I found EMACS to have
   serious problems, some potentially correctable, some not...


A comparison of CRISP and EMACS:

*  CRISP has a keyboard command interface that is rational, easy to learn and
   requires a minimal number of keystrokes.  Meta-W (a.k.a. Alt-W) writes the
   current file to disk, Meta-S does a search, Meta-X exits, etc.
   
   EMACS requires at least twice as many keystrokes for many commands, and the
   letters chosen often have little relation to the function performed.

*  CRISP allows very convenient cursor movement using the keypad arrow keys on
   the Sun keyboard (also on the PC and others).  You can move to:

      Left and right one character
      Up and down one line
      Left and right one word (Ctrl-Left and -Right)
      Beginning and end of the line (Home and End)
      Page up and down (PgUp and PgDn)
      Beginning and end of the file (Ctrl-PgUp and -PgDn)
      Top and bottom of the window (Ctrl-Home and -End)
      Left and right edges of the window (Shift-Home and -End)

   EMACS only uses the cursor keys for left and right one character, up and
   down one line.  The other functions are performed with control-letter or
   meta-letter keys (with hard-to-remember letters).  This is supposed to allow
   EMACS to run on the dumbest of terminals, such as a teletype, which lack a
   cursor keypad.
   
   My judgement is that if you have such a crippled keyboard, or a display that
   shows only 25 lines, or some other impediment to good ergonomic
   human-computer interface, you should GET RID OF IT!  If you are a
   professional programmer, your keyboard, screen, editor, and compiler are
   your most essential tools; you need and deserve good ones.  (By the way, I
   don't mean to be a GNU-basher; I use gcc and love it.)

   Another EMACS aggravation: when you cursor down to the bottom line of the
   window, and then down one more line, does the window scroll up one line,
   leaving the cursor at the bottom?  No; it jerks up half the height of the
   window, causing you to lose your place in the text!

*  CRISP highlights the selected area of text (for copying, deletion,
   searching, etc.) in reverse video, just like every other editor and word
   processor I have ever seen, under both MS-DOS and the Unix clone QNX.
   
   What finally convinced me not to use EMACS is that it does NOT distinguish
   the selected region on the screen in any way.  Yes, folks, incredible as it
   seems, the selected region looks just the same as the rest of the text.  It
   isn't in reverse video, or underlined, or blinking, or a different color.
   So how do you know where it is?  The EMACS manual says you are supposed to
   *remember*.
   
   Well, if I am cutting and pasting 300 lines of my carefully written and
   debugged code, I damn well want to SEE where it is!

   It is only fair to mention that while the author(s) of EMACS omitted this
   highlighting they did take the time to include something else--ELIZA the
   electric psychiatrist.  Maybe this is because, after using EMACS' bizarre
   command interface and invisible selection region, you will NEED a
   psychiatrist!

   I spoke with EMACS consultants at Stanford and at Sun about this, and both
   told me that it would require a major rewrite of EMACS to render the
   selection in reverse video.
   
   But that isn't all.  Our Unix consultants told us that when you select an
   area of text in EMACS you must use it in the very next command, since some
   commands *change* the extent of the (invisibly) selected area, without
   telling the user!  (ELIZA, I'm ready for our session now!)

*  CRISP has a relatively easy macro (internal programming) language.  It was
   originally a simplified form of LISP, but the compiler now also accepts a
   simplified form of C.
   
   The EMACS help system for its internal language (elisp) was not documented
   and it took me a whole day just to learn how to access it.  A cursory study
   of its contents indicated that it might require a substantial knowledge of
   LISP to be able to write macros for EMACS.

*  A final piece of evidence:  At one point I helped one of our staff members
   by locating a bug in his C program, which he had been unable to find after
   spending an entire day at it.  It was a hard bug to pin down, since it
   turned out to be in a header file that was #include'd in the file that was
   failing.  He said he had recently viewed the header file with EMACS but had
   not altered it.  I suspect he accidentally pressed some wrong key while in
   EMACS that subtly mangled this file, but the point is that the user
   interface of EMACS is so complex and confusing that it is easy to mess up
   source code and thereby waste a great deal of time and energy.

You can probably fix some of EMACS' problems by mastering its programming
language and making extensive changes in its routines.  You can probably also
get nibbled to death by a herd of mice.


Additional CRISP features (which aren't necessarily absent from EMACS):

*  Easy selection of a region of text with only a couple of keystrokes.  You
   can select a span of complete lines, or a span of characters (which may
   include multiple lines).  The third choice is a rectangular area of text,
   which is very handy for dealing with tabular data and diagrams.

*  Any number of resizable, tiled windows, with multiple windows onto each file
   and multiple files.

*  Automatic usage of the full number of lines and columns of the terminal or
   parent window (under X or Sunview).
   
   If the parent window is resized, all of the internal tiled windows are
   automatically resized proportionally (in the current version of CRISP).

*  Unlimited and complete "undo" (back to the last writing of the file to disk),
   including cursor movements and text selection.

*  "Redo" to reverse the effects of "undo".

*  Multitasking--operation of shells in one or more windows.  You can compile
   your source code in one window (to check syntax) while continuing to edit it
   in another.

*  After a compilation, CRISP moves the cursor to each error found by the
   compiler in the source code you are editing, while displaying the error
   message at the bottom of the screen.
      

MS-DOS is a terrible operating system (compared to Unix), mainly because it
places a size limit on the programs it will run.  Yet many of its applications,
including programming tools, are better designed than their Unix counterparts.
I think this is because MS-DOS occupies a market share many times larger than
Unix, and the purchasing power of this customer base supports a great deal more
commercial software development than the Unix world enjoys.

For example, I would love to have a Unix equivalent of XTree Gold, the superb
MS-DOS file manager.  (I tried the Unix "find" command, just to map the
directory tree, and it went out the NFS directory and never came back!)

There are probably half a dozen good programming editors running under MS-DOS,
with BRIEF the most widely used by far.  For Unix, the only commonly available
editors are vi and EMACS.  None of our consultants ever heard of CRISP.
Hopefully, that will change.


                                                Mark S. Bilk



   Stanford University                          Infinity MicroSystems
   Hansen Labs, Gravity Probe B                 2280 Latham St., Suite 12
   Via Palou                                    Mountain View, CA
   Stanford, CA                                 94040
   94305

   415-725-4100                                 415-968-1065

   bilk@relgyro.stanford.edu                    msb@cup.portal.com

---

src@scuzzy.in-berlin.de (Heiko Blume) (04/05/91)

msb@cup.portal.com (Mark Steven Bilk) writes:

>A comparison of CRISP and EMACS:

which of the 1000 emacs variants are you talking about?

>   EMACS requires at least twice as many keystrokes for many commands, and the
>   letters chosen often have little relation to the function performed.

see below.

>*  CRISP allows very convenient cursor movement using the keypad arrow keys on
>   the Sun keyboard (also on the PC and others).  You can move to:

>      Left and right one character
>      Up and down one line
>      Left and right one word (Ctrl-Left and -Right)
>      Beginning and end of the line (Home and End)
>      Page up and down (PgUp and PgDn)
>      Beginning and end of the file (Ctrl-PgUp and -PgDn)
>      Top and bottom of the window (Ctrl-Home and -End)
>      Left and right edges of the window (Shift-Home and -End)

if you try GNU emacs, you'll discover that it's configurable to do
all that and much more versatile moving, especially context sensitive
things 'End' goes to the end of line on the first press, to the end
of paragraph on the second and to the end of buffer on the third press.
if you don't like some key mapping, i.e. Cntrl-x-w for write-file, just
go ahead and bind alt-w (or F1 or whatever) to that function, no problem!

>   EMACS only uses the cursor keys for left and right one character, up and
>   down one line.  The other functions are performed with control-letter or
>   meta-letter keys (with hard-to-remember letters).  This is supposed to allow
>   EMACS to run on the dumbest of terminals, such as a teletype, which lack a
>   cursor keypad.
>   

that's true, you can run it on (nearly) any type of terminal. however,
since it can not know beforehand what your personal terminal 
produces when you press ctrl-meta-shift-left-R9, you must tell it!
fortunately that's quite easy...

>   My judgement is that if you have such a crippled keyboard, or a display that
>   shows only 25 lines, or some other impediment to good ergonomic
>   human-computer interface, you should GET RID OF IT!

sounds more like 'crippled' administrators that don't provide a proper
default configuration for their users.
btw: GNU emacs can manage 300 by 300 character windows under X by default.
you can compile it with higher values, if your screen is big enough for that.


>  If you are a
>   professional programmer, your keyboard, screen, editor, and compiler are
>   your most essential tools; you need and deserve good ones.  (By the way, I
>   don't mean to be a GNU-basher; I use gcc and love it.)

jesus! PLEASE try this in GNU emacs :
[say, you have bla.c, blub.c and a Makefile that makes prgm out of both.]

cntrl-x cntrl-f bla.c
test()
{
	int blub;
	printf("deliberate error!);
}

[change something in this buffer]

Meta-x compile

[emacs now asks 'save bla.c ?' - answer 'y'. you'll get a new window
 with gcc's output. it will complain of course. now type]

cntrl-x `

[this will parse the gcc output and will take your cursor to the erroneous
line in the bla.c buffer. emacs will also load the the file(s) that contain
errors and move the cursor to the offending line when you enter cntrl-x ` ]

you can also run gdb inside emacs etc...

>   Another EMACS aggravation: when you cursor down to the bottom line of the
>   window, and then down one more line, does the window scroll up one line,
>   leaving the cursor at the bottom?  No; it jerks up half the height of the
>   window, causing you to lose your place in the text!

again, that's configurable. EVERYTHING in emacs is configurable.

>   What finally convinced me not to use EMACS is that it does NOT distinguish
>   the selected region on the screen in any way.  Yes, folks, incredible as it
>   seems, the selected region looks just the same as the rest of the text.  It
>   isn't in reverse video, or underlined, or blinking, or a different color.
>   So how do you know where it is?  The EMACS manual says you are supposed to
>   *remember*.
>   

try epoch, the X Windowized emacs.
-- 
   Heiko Blume <-+-> src@scuzzy.in-berlin.de <-+-> (+49 30) 691 88 93 [voice!]
                  public UNIX source archive [HST V.42bis]:
        scuzzy Any ACU,f 38400 6919520 gin:--gin: nuucp sword: nuucp
                     uucp scuzzy!/src/README /your/home

cliff@demon.co.uk (Cliff Stanford) (04/07/91)

In article <40804@cup.portal.com> msb@cup.portal.com (Mark Steven Bilk) writes:
>
>Write to:
>
>   Paul Fox
>     8 Theobalds Way
>       Frimley
>         Surrey GU16 5RF
>           England
>
>   Home phone: +44 276 670 603
>
>Paul has no Net access at the moment

	Paul is now contactable as fox@demon.co.uk.
		Cliff.
-- 
Cliff Stanford				Email:	cliff@demon.co.uk (Work)
Demon Systems Limited				cms@demon.co.uk   (Home)
42 Hendon Lane				Phone:	081-349 0063	  (Office)
London	N3 1TT	England				0860 375870	  (Mobile)

colin@tcs.com (Colin Kendall) (04/20/91)

--


colin 

colin@tcs.com (Colin Kendall) (04/20/91)

I thought I knew all there was to know about using vi until I started
reading this group. From reading this group, I learned about the 
highly useful @ command. Which brings up some questions:

1. Is there any command which means "repeat the previous command-line"?

2. What do #, &, *, =, ;, :, ,, ., and ~ do when entered as commands?  
--


colin