vi and emacs both have named registers that you can use to store and recall text. I don't know how to use vi but I know they're there.
- emacs does really beautiful rectangle cuts and pastes.
- emacs does cuts, copies and appends to regisers.
- emacs does cuts copies and appends to other buffers.
- emacs lets you treat a register as a variable that you can increment and decremt and use it's value in keyboard macros.
- emacs lets you write extra functions in lisp (if you want to)
- emacs lets you record keyboard macros. either one time quick hacks or you can name them and bind them to a key. just for this session or make them permenant.