Even more useful, you can use `:earlier 1f`, `:earlier 2f`, etc. (and `:later 1f`, etc.) to go back and forth to however many times the buffer was saved until the moment it was opened. So, for example, if I edit a source file that works, save it, see I made a mistake when I run it, try to fix it, save it again, and see another problem, I can go back to when it was working by doing `:earlier 2f` no matter how many changes and undos I've made.
EDIT: As to how granular it is, besides :write units, you can specify days, hours, minutes, seconds, or individual change units (the kind that u, g-, and g+ work with. So, `:earlier 10` is the same as `10g-`.
EDIT: As to how granular it is, besides :write units, you can specify days, hours, minutes, seconds, or individual change units (the kind that u, g-, and g+ work with. So, `:earlier 10` is the same as `10g-`.