in gVim, I am trying to do
q 2 dd j q
Then
@2
at several points later. It works the first time (meaning vim deletes three lines and moves down when I type @2), but anytime after that, my screen blinks and the cursor moves down once.
Is there a setting I need in vimrc or something to allow this macro?
What is happening is that Vim uses the Numbered registers to store recent changes made with the yank and delete commands. That will wipe your macro from the register.
As a general recommendation, avoid the numeric registers when recording macros.