Améliorez la vitesse de relecture des macros?

13

J'ai enregistré une macro simple et l'ai rejouée sur les lignes suivantes, mais il semble que la vitesse de relecture soit très lente (gérer très peu de lignes par seconde). Est-ce prévu et existe-t-il un moyen d'améliorer cette vitesse?

Thomson
la source
4
Try :set lazyredraw( :h lazyredraw)
VanLaser
En effet, lazyredrawc'est probablement la meilleure solution. Vous pouvez également fournir votre macro et un exemple de fichier afin que nous puissions voir s'il peut être optimisé.
statox

Réponses:

12

La définition de lazyredrawavec :set lazyredrawaméliorera considérablement la vitesse d'exécution des macros en ne redessinant pas l'écran pendant l'exécution d'une macro ou l'exécution d'une commande autre que celles que vous saisissez, voir :help 'lazyredraw'pour plus d'informations.

Une autre façon de réduire vous assure de ne pas perdre de temps dans les autocmds ou les mappages. Si vos macros sont toujours lentes après l'exécution, vérifiez votre fichier vimrc pour les mappages lents ou inutiles et supprimez les plugins inutiles. Dans mon cas, j'avais un autocmd qui s'exécuterait et un programme externe pour désactiver CapsLock en quittant le mode d'insertion, c'était pratique et normalement imperceptible mais cela ralentissait beaucoup les macros d'insertion.

Si votre macro passe en mode d'insertion, où vous avez beaucoup de mappages, il peut être utile d'avoir une clé pour définir le mode de collage et désactiver temporairement les mappages d'insertion, voir :help 'paste'et :help 'pastetoggle'. Gardez à l'esprit que cela pourrait rendre les insertions plus difficiles.

Enfin, gardez la macro aussi simple que possible en minimisant le mouvement, le changement de mode, etc.

Bonne chance.

ZeroKelvinKeyboard
la source