I don't have much to add to the thread except for:
set undofile
which will allow for persistent undo, i.e. undoing changes even after closing a file.