nvi generalizes the dot command
into a full "redo" command, applying it even if the
last command was u for "undo."
Thus, to begin a series of "undo" commands, first type a
u. Then, for each . (dot) that you
type, nvi will continue to undo changes, moving
the file progressively closer to its original state.
Eventually, you will reach the initial state of your file. At
that point, typing . will just ring the bell
(or flash the screen). You can now begin redoing by typing
u to "undo the undos" and then
using . to reapply successive changes.
nvi does not allow you to provide a count to either
the u or . command.