Как отметил @Trendfischer в своем комментарии, текущее поведение vim не является (больше?) очистить регистр при первом нажатии q .
Теперь, если вы выбрали неправильный регистр, вот что вы можете сделать:
- не выходите из режима записи (пока),
- создать пустую строку,
- вставьте перезаписываемый регистр (если вы записываете в регистр
q , это "qp),
- теперь выйдите из режима записи (
q)
- выберите строку, которую вы вставили выше (без метки конца строки:
0v$h ; не используйте V)
- вставьте его в регистр, который вы перезаписали (
"qy если вы используете регистр q ; опять же: не используйте строчную копию Y).
- Теперь ваш старый макрос вернулся в реестр, и вы можете перезапустить запись нового макроса в правильном регистре.
Конечно, приложив немного усилий, вы можете спасти как старый, так и новый макрос (но вы должны запустить процесс, прежде чем нажимать второй раз клавишу q): просто вставьте то, что вы записали, и нажмите в "новом"/"правильный" регистр.