When I first encountered the Unix vi
editor many years ago, I recoiled in horror. It was nothing like the editors I was used to—Borland IDEs, DOS 5.0/6.x EDIT, or OS/2 and Windows editors. But over the years, I learned to use vi
.
It turns out that on many exotic *nix systems, vi
is the only game in town. Sure, there might be some way to install pico
or nano
or whatever, but even if that is possible, it might be very difficult to get there without editing a couple of files… with vi
. And when the system in question is some ancient XENIX or PC/IX or Microport UNIX or whatever, the effort of installing some other editor vastly outweighs the effort of learning vi
—and that’s if the system in question even comes with a compiler.
Some time later I started using the vi
editor that comes with the (Open) Watcom compilers. It’s a decent vi
clone, not great but workable. It has the nice property that there are console versions for DOS, OS/2 (both 32-bit and 16-bit), and NT available (and *nix, too). The DOS version that ships with the compiler is a 32-bit DOS-extended version, but it’s also possible to build a 16-bit version. Which will run on a 286 or even an 8086, and that’s occasionally useful.

I’ve been using the 16-bit DOS version of Open Watcom vi
for some time, and it works well… except sometimes it hangs the system. But only sometimes and not very consistently. When it does hang, it usually happens when quitting the editor, but rarely also when starting it up.
I’ve never been able to track down the problem because it doesn’t happen frequently enough and when it does, all I can see that the system ends up in a corrupted state. Until yesterday.
Continue reading