Migliorare la velocità di riproduzione macro?


13

Ho registrato una macro semplice e l'ho riprodotta sulle righe seguenti, ma sembra che la velocità di riproduzione sia molto lenta (gestire poche righe al secondo). È previsto e c'è un modo per migliorare tale velocità?


4
Try :set lazyredraw( :h lazyredraw)
VanLaser

Infatti lazyredrawè probabilmente la soluzione migliore. Puoi anche fornire la tua macro e un file di esempio in modo che possiamo vedere se può essere ottimizzato.
statox

Risposte:


12

L'impostazione di lazyredrawwith :set lazyredrawmigliorerà notevolmente la velocità di esecuzione delle macro non ridisegnando lo schermo mentre una macro è in esecuzione o viene eseguito un comando diverso da quelli digitati, vedere :help 'lazyredraw'per ulteriori informazioni.

Un altro modo per ridurre è quello di non perdere tempo con le mappe o i mapping automatici. Se le macro sono ancora lente dopo l'esecuzione, controlla il file vimrc per mappature lente o non necessarie e rimuovi i plug-in non necessari. Nel mio caso avevo un autocmd che sarebbe stato eseguito e un programma esterno per disattivare CapsLock all'uscita dalla modalità di inserimento, questo era comodo e normalmente impercettibile, ma rallentava molto le macro di inserimento.

Se la tua macro entra in modalità inserimento, dove hai molti mapping, può essere utile avere una chiave per impostare la modalità incolla e disabilitare temporaneamente i mapping di inserimento, vedi :help 'paste'e :help 'pastetoggle'. Tieni presente che ciò potrebbe rendere più difficile l'inserimento.

Infine, mantieni la macro il più semplice possibile minimizzando i movimenti, il cambio di modalità, ecc.

In bocca al lupo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.