There are a few packages for redo. Of the ones i've used are:
- 〔redo.el〕 by Kyle E. Jones, 1997.
- 〔redo+.el〕original by Kyle, updated by S Irie, 2008.
- 〔undo-tree.el〕 Toby Cubitt 2009-.
The redo.el works ok, but occasionally it corrupts your undo… meaning that you know there's more undo/redo but wasn't able to get to it. This happens perhaps once a month.
The redo+.el is supposed to update/modernize the code. Unfortunately, i didn't have luck with it. These Kyle based redo modes are ~200 lines of elisp, each.
read more at http://xahlee.org/emacs/emacs_best_redo_mode.html