undo (bound to
C-x u by default) will restrict its action to the active region, if there is one:
In Transient Mark mode when the mark is active, only undo changes within
the current region. Similarly, when not in Transient Mark mode, just C-u
as an argument limits undo to changes within the current region.
That allows to you undo changes in any arbitrary contiguous block of text. Emacs includes
mark-paragraph out of the box, bound to
M-h by default. That means
M-h C-/ (followed by as many repetitions of
C-/ as you need) will progressively undo changes to the highlighted paragraph.
We don't have a
mark-line function by default. You can mark the line 'by-hand' with:
C-a C-space C-e, and then use
C-x u etc) to undo changes to just that line.
Moving to the beginning (
C-a) or end (
C-e) of the line, and setting the mark (
C-space) are things that you do so frequently in Emacs that after a while it just becomes part of your muscle memory. Meaning, I wouldn't gain much by wrapping this up in a special-purpose function. However, you certainly could do that, and you might want to use the
mark-line function from
misc-cmds that @Charles mentioned to do that.