The tricky thing about macros is getting your head around what movements and text objects you can use that will work in the general case, so the macro doesn't break when you run it in another location. Generally, you want to avoid character-based movements and prefer searches and word-based movements.
Once you've internalised this, though, you should find that you can record most macros pretty much as fast as you could make a single edit, and will rarely make mistakes. Remember that undoesbackspaces and delete commands are recorded too, so many errors can be fixed while you are still recording the macro! (Edit: I'm not sure if it was ever true that you could use undo while recording a macro, but it's certainly not true in current versions: when played back, the u
will undo all the changes since the start of the recording.)
However, in this example the edits you need to make are so well aligned that pretty much any movements you choose will work e.g.:
qqlD3j$pa;<esc>2-q2@q
qq
Start recording,
lD
Move one character to the left and delete to the end of the line,
3j
Move down three lines,
$p
Jump to end of the line and paste the deleted text,
a;<esc>
Add the semicolon,
2-
Move back up to the next line we want to work on,
q2@q
Save the macro and replay it twice.
(N.B. I was under the impression when writing this answer that the numbers were actually part of the text you wanted editing. Reading the other answers it occurs to me that they may be intended as line-numbers. If so, a slight adjustment is required: qqD3jA<space>;<esc>P2-q2@q
)
If, after practice, you find that you still have trouble with macros, you could of course try installing a multiple cursors plugin. I would note, however, that although the visual feedback such a plugin provides might help you catch errors sooner, the actual editing commands you need to use will be the same as required for a macro, so if you find that you can perform edits using the plugin without making mistakes and having to undo, that suggests you could also do so using a macro.