I've defined one keyboard macro, bound to keystroke
1, say, and I want to define a second keyboard macro that executes the first one indefinitely and then returns to the beginning of the buffer. I assume that the first one always terminates if iterated indefinitely. E.g., it could be a keyboard macro that operates on a line and then moves to the next line.
To define the new keyboard macro, I naively want to type:
C-x C-k 1
C-u C-u C-x (
In other words,
C-x ( to begin recording,
C-u 0 to specify indefinite execution,
C-x C-k 1 to specify that the indefinite execution refers to keyboard macro 1,
C-u C-u C-x ( to resume recording the new keyboard macro (since recording automatically terminates after the last iteration of keyboard macro 1),
M-< to return to the beginning of the buffer, and finally
C-x ) to end recording.
If I bind all of that to a new key sequence and then invoke it, I find that this new keyboard macro goes as far as to execute keyboard macro 1 (as many times as it can) but fails to finish with the
M-<. Am I doing something wrong? Is there another way to achieve what I want?