[TUHS] Early Unix and Keyboard Skills

Larry McVoy lm at mcvoy.com
Mon Aug 7 01:01:23 AEST 2023

On Sun, Aug 06, 2023 at 04:51:04PM +0200, Leah Neukirchen wrote:
> Larry McVoy <lm at mcvoy.com> writes:
> > Just in case there is confusion, vi was Bill Joy, Bostic did nvi (which was
> > open source and bug for bug compat), Bram did vim, which I think was a 
> > clean room version of vi with a huge bunch of added goodness.
> Vim was based on Stevie, an Atari ST vi clone he ported to the Amiga 2000.

I remember Stevie.  In my early days at Sun, on 4MB machines, I was
working on log files about the size of memory so the machine swapped like
crazy just to take a look.  I looked at Stevie but then settled on xvi.
I changed the libc string functions to treat \n as well as \0 as a
string terminator, changed how xvi read in a file to use mmap() instead.
It wasn't really that hard but then I had a vi clone that could work on
files twice as large with no swapping.  

The read only path was super easy to do, I made the write path work
as well, that took a little tinkering because you couldn't modify the
lines in place (think changing case on a line which xvi was happy to
do in place but I couldn't because I'd be changing the file data which
means :q!  wouldn't do what you wanted).

It's of little interest now but at the time, it was a huge win for me,
I was working on performance and looking at log files was a big part
of that.  Most of us remember what it was like to work on a working set
that was bigger than memory, it sucked.

More information about the TUHS mailing list