kirkenda@eecs.cs.pdx.edu (Steve Kirkendall) (11/16/90)
Hello! I'm the guy who wrote Elvis. I'd like to clear up a few things... COPYRIGHT: Elvis is copyrighted by me, but (for the current versions, at least) I am allowing it to be redistibuted by anybody, for any purpose, with no restrictions. Elvis 1.2 is being distributed with Minix. Elvis 1.4 is part of the newest version of Coherent, and it will probably be part of Amoeba. Some version of Elvis will probably be distributed with GNU, too. MOTIVATION: I've always wanted my own version of vi, so I could change a few things. I did a lot of designing a few years ago, but I didn't actually start writing code until the day that "Stevie" crashed, costing me over an hour of work. I wrote Elvis because I wanted a good reliable RECOVERABLE editor that could run under Minix. Obviously I'm a vi addict, so my definition of "good" is severely bent. And now that it's done (sort of), I want Elvis to be distributed as widely as possible, in order to bring fame and glory to the name of Steve Kirkendall. So I'm glad that it was posted to c.b.i.p, and if you want to archive it or share it with friends... Thank you! HISTORY: The source to Elvis 1.0 was posted in early January 1990, to the comp.os.minix newsgroup. Many bug reports and bug fixes followed, so version 1.1 was posted in (I think) late January or early February. I continued to fix bugs as they were reported. In late February, Andy Tanenbaum asked if he could include Elvis with the next version of Minix. I said "yes", and mailed him the most up-to-date version available. I called it 1.2. It wasn't really a good stopping point, but deadlines were approaching and he needed it NOW. After I sent Dr.T version 1.2, Guntram Blohm and Martin Patzel sent me the patches needed to make Elvis work under DOS. After a few weeks of give-and-take, we had a single set of source that could compile under both DOS and Minix/UNIX. This was version 1.3. In late March, I submitted it to the moderator of comp.sources.unix -- the Minix newsgroup no longer seemed appropriate. Version 1.3 never appeared on c.s.unix. I kept asking the moderator "When?" and he kept saying "Soon!" but in September I gave up and posted 1.3 to alt.sources myself. I had to. Version 1.4 was nearly done, and all I needed was a zillion or so bug reports to make 1.4 perfect. I got the bug reports, all right. One of them -- the rename bug under MS-DOS -- was important enough that I posted a fix immediately. The other bug fixes went into 1.4. Version 1.4 has also been ported to a few more OS's. About a month ago I finished 1.4, and submitted it to comp.sources.unix again. I know, I know. But the moderator promised me he'd post it within five days, so I thought I'd give him another chance. That was a month ago. Still waiting. I'm working on 1.5 now. DOCUMENTATION: Documentation is available. I'm surprised it wasn't distributed with the binaries. In version 1.4, I include a formatted 50-page manual, plus "man" pages for each program. The "man" pages must be processed by nroff or troff. IBM PC COMMENTS: Elvis runs faster if you use a good ANSI console driver. NANSI.SYS and FANSI.SYS have been reported to work well. To make Elvis use the console driver, you should "set TERM=ansi" for ANSI.SYS (which sucks) or "set TERM=nansi" for any other ANSI console driver. Version 1.5 will probably have a "color" command, but for 1.3 and 1.4, you can only change the BIOS colors by editing the attr[] table in the "pc.c" file. If you use an ANSI console driver, though, then *I THINK* the colors are determined solely by the driver, not by Elvis. (I can't say that with a whole lot of confidence, though, because I don't personally use MS-DOS.) By default, temp files are stored in the directory "C:\tmp". This directory must exist before you can run Elvis. Since ".exrc" is not a valid filename under DOS, the initialization commands are stored in "elvis.rc" instead. The version posted to c.b.i.p. only checks in the current directory. If you have the sources, though, you can configure it to also check in your HOME directory or in a standard system-wide file. You should probably add "set sync" to your elvis.rc file. This causes Elvis to flush disk I/O after every change. Without this, you have *NO* chance of recovering you changes after a system crash or power failure. - Share and Enjoy - ------------------------------------------------------------------------------- Steve Kirkendall kirkenda@cs.pdx.edu Grad student at Portland State U.