A configuração de lazyredrawwith :set lazyredrawmelhorará bastante a velocidade de execução da macro, não redesenhando a tela enquanto uma macro estiver sendo executada ou um comando for executado diferente daqueles que você digitar, consulte :help 'lazyredraw'para obter mais informações.
Outra maneira de reduzir é garantir que você não perca tempo com autocmds ou mapeamentos. Se suas macros ainda estiverem lentas após a execução, verifique o arquivo vimrc quanto a mapeamentos lentos ou desnecessários e remova plugins desnecessários. No meu caso, eu tinha um autocmd que executaria um programa externo para desativar o CapsLock ao sair do modo de inserção. Isso era conveniente e normalmente imperceptível, mas diminuía bastante as macros de inserção.
Se sua macro entrar no modo de inserção, onde você tem muitos mapeamentos, pode ser útil ter uma tecla para definir o modo de colar e desativar temporariamente os mapeamentos de inserção, consulte :help 'paste'e :help 'pastetoggle'. Lembre-se de que isso pode dificultar as inserções.
Por fim, mantenha a macro o mais simples possível, minimizando o movimento, a alternância de modo etc.
Boa sorte.
:set lazyredraw(:h lazyredraw)