Nagrałem proste makro i odtworzyłem je w kolejnych wierszach, ale wydaje się, że szybkość odtwarzania jest bardzo wolna (poradzisz sobie z kilkoma liniami na sekundę). Czy jest to oczekiwane i czy istnieje sposób na poprawę takiej prędkości?
13
:set lazyredraw
(:h lazyredraw
)lazyredraw
jest to prawdopodobnie najlepsze rozwiązanie. Możesz również podać swoje makro i przykładowy plik, abyśmy mogli sprawdzić, czy można go zoptymalizować.Odpowiedzi:
Ustawienie opcji
lazyredraw
z:set lazyredraw
znacznie poprawi szybkość wykonywania makr, ponieważ nie przerysowujemy ekranu podczas wykonywania makra lub wykonywania polecenia innego niż te, które wpisałeś, zobacz:help 'lazyredraw'
więcej informacji.Innym sposobem na ograniczenie jest upewnienie się, że nie masz czasu marnowania autocmds ani mapowań. Jeśli po uruchomieniu makra nadal działają powoli, sprawdź, czy w pliku vimrc nie ma wolnych lub niepotrzebnych mapowań i usuń niepotrzebne wtyczki. W moim przypadku miałem autocmd, który uruchomiłby się i zewnętrzny program do wyłączania CapsLock przy wychodzeniu z trybu wstawiania, było to wygodne i zwykle niezauważalne, ale bardzo spowalniało wstawianie makr.
Jeśli twoje makro wejdzie w tryb wstawiania, w którym masz wiele odwzorowań, pomocne może być posiadanie klucza do ustawienia trybu wklejania i tymczasowego wyłączenia wstawiania odwzorowań, zobacz
:help 'paste'
i:help 'pastetoggle'
. Pamiętaj, że może to utrudnić wstawianie.Wreszcie, utrzymuj makro tak proste, jak to możliwe, minimalizując ruch, przełączanie trybów itp.
Powodzenia.
źródło