One built-in feature (not enabled by default) that I absolutely love is persistent undo. Love it.
Basically, undo trees can be persisted across vim sessions. Have a read via ":help undo-persistence".
Pairing this with undotree[1] is really handy, as it allows you to see your full edit history, branches and all, and jump back and forth.