Design for grouping undo steps when editing text

Some undo for text editor editors handle text input differently.

  • Every key press is a single undo step.
    Typing in a word N characters long, requires N undo steps.
  • Undo steps use word boundaries
    Undoing will undo each word entered.
  • Undo steps use timer-based boundaries
    If you stop typing N milliseconds - this adds an undo step.
  • Undo steps add boundaries every N characters entered.

Given these different ways of handling undo for text input, are there strong reasons to pick one of these over another?


Edit, asking about this for text entry fields for a widget-toolkit.