Links: Vim

Vim undo and redo functions works for the most part as you would expect, you can press u in normal mode to undo the last action and Ctr-r to redo it.
You can also use u with a number modifier like 3u to undo 3 steps.

time-travel

Vim allow you to move back and forward on your file edits not only one by one, but also by time intervals, here are some examples:

commanddescription
:earlier 10mundo changes in last 10 minutes
:ea 2dundo changes in last 2 days
:later 10mredo changes in last 10 minutes
:lat 10sredo changes in last 10 seconds
:ea 3fundo changes in last 3 file writes