¿Mejorar la velocidad de reproducción macro?


12

Grabé una macro simple y la reproduje en las siguientes líneas, pero parece que la velocidad de reproducción es muy lenta (maneja muy pocas líneas por segundo). ¿Es esto esperado y hay una manera de mejorar esa velocidad?


3
Prueba :set lazyredraw( :h lazyredraw)
VanLaser

De hecho, lazyredrawes probablemente la mejor solución. También puede proporcionar su macro y un archivo de muestra para que podamos ver si se puede optimizar.
statox

Respuestas:


12

La configuración de lazyredrawwith :set lazyredrawmejorará en gran medida la velocidad de ejecución de la macro al no volver a dibujar la pantalla mientras se ejecuta una macro o se ejecuta un comando distinto de los que escribe, consulte :help 'lazyredraw'para obtener más información.

Otra forma de reducir es asegurarse de que no tiene tiempo que perder autocmds o asignaciones. Si sus macros siguen siendo lentas después de ejecutarse, revise su archivo vimrc para ver si hay asignaciones lentas o innecesarias y elimine los complementos innecesarios. En mi caso, tenía un autocmd que se ejecutaba y un programa externo para desactivar CapsLock al salir del modo de inserción, esto era conveniente y normalmente imperceptible, pero ralentizaba mucho las macros de inserción.

Si su macro ingresa al modo de inserción, donde tiene muchas asignaciones, puede ser útil tener una clave para establecer el modo de pegado y deshabilitar temporalmente las asignaciones de inserción, vea :help 'paste'y :help 'pastetoggle'. Tenga en cuenta que esto podría dificultar las inserciones.

Finalmente, mantenga la macro lo más simple posible minimizando el movimiento, el cambio de modo, etc.

Buena suerte.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.