When using u or CTL-R to undo or re-do an edit in vim, I seem to alter chunks of text, not just the most recent keystroke.  What determines the size of the chunk that is considered to be a single edit?
How does vim determine the size of a single edit when using u and CTL-R?
command history
You are looking for the definition of undo-blocks.From :h undo-blocks:One undo command normally undoes a typed command, no matter how many changes  that command makes.  This sequence of undo-able changes forms an undo block.  Thus if the typed key(s) call a function, all the commands in the function are  undone together.The same block is used for redo. From :h redo:The last changes are remembered.  You can use the undo and redo commands above  to revert the text to how it was before each change.  You can also apply the  changes again, getting back the text before the undo.