Continuous saving?

Perhaps I’m mistaken.  Bill Joy’s original vi had only a single level undo, and I’m not sure how the post crash recovery was implemented.  According to the Ex Reference Manual v3.7, William Joy and Mark Horton, “If a hangup signal is received and the buffer has been modified since it was last written out, or if the system crashes, either the editor (in the first case) or the system (after it reboots in the second) will attempt to preserve the buffer.”  What I don’t remember is exactly how the buffer was organized.  Since vi was able to edit large files, I know the buffer wasn’t entirely memory resident.  In any case, the effect was the same as a keystroke log.

Anyway, there were several other examples of keystroke logging in editors from the 80s.  Digital’s EDT editor certainly saved keystrokes and when playing them back would display the changes while applying them making the screen dance.  It was pretty nifty back then, and useful because it would let you review your edits before you would need to make the decision to save or discard them.

Another example was the jove editor. The emacs like editor would save a change log every 50 characters.

My point with unlimited undo/redo is not that vi had this mechanism, but that contemporary applications that have unlimited undo/redo already have a mechanism for maintaining a list of changes.  They only need to save them to disk and implement the ‘redo’ function when restarted after failure.