On Sun, Aug 06, 2023 at 04:51:04PM +0200, Leah Neukirchen wrote:
Larry McVoy <lm(a)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.