Melhorar a velocidade de reprodução de macro?

12

Gravei uma macro simples e a reproduzi nas linhas a seguir, mas parece que a velocidade de reprodução é muito lenta (lida com poucas linhas por segundo). Isso é esperado e existe uma maneira de melhorar essa velocidade?

Thomson
fonte
3
Tente :set lazyredraw( :h lazyredraw)
VanLaser 13/08/2015
Na verdade, lazyredrawé provavelmente a melhor solução. Você também pode fornecer sua macro e um arquivo de exemplo para que possamos ver se ele pode ser otimizado.
Statox

Respostas:

12

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.

ZeroKelvinKeyboard
fonte