I use emacs and I really like undo-tree, for basically this reason. Every edit is its own save point, and I can go back to any point in my editing history, even the stuff that would have been overwritten using traditional linear undo/redo.
Vim also has this in gundo. It's one of the killer features of the older editors that doesn't seem to be present in newer ones.
Vim also has this in gundo. It's one of the killer features of the older editors that doesn't seem to be present in newer ones.