This answer says:
Vim\'s undo/redo system is unbeatable. Type something, undo, type something else, and you can still get back the first thing you typed
This page explains everything you need to know:
http://vimdoc.sourceforge.net/htmldoc/usr_32.html