Улучшить скорость воспроизведения макросов?

13

Я записал простой макрос и воспроизвел его в следующих строках, но кажется, что скорость воспроизведения очень низкая (обрабатывать очень мало строк в секунду). Ожидается ли это и есть ли способ улучшить такую ​​скорость?

Thomson
источник
4
Попробуйте :set lazyredraw( :h lazyredraw)
VanLaser
Действительно lazyredraw, возможно, лучшее решение. Вы также можете предоставить свой макрос и пример файла, чтобы мы могли посмотреть, можно ли его оптимизировать.
statox

Ответы:

12

Установка lazyredrawwith :set lazyredrawзначительно улучшит скорость выполнения макроса, не перерисовывая экран во время выполнения макроса или выполнения команды, отличной от введенной вами, см. :help 'lazyredraw'Дополнительную информацию.

Еще один способ уменьшить количество лишних данных - убедиться, что вы не тратите время на автоматическое преобразование или сопоставление. Если ваши макросы все еще работают медленно после запуска, проверьте файл vimrc на наличие медленных или ненужных отображений и удалите ненужные плагины. В моем случае у меня был autocmd, который запускался, и внешняя программа для отключения CapsLock при выходе из режима вставки, это было удобно и обычно незаметно, но сильно замедляло вставку макросов.

Если макрос входит в режиме вставки, где у вас есть много отображений, это может помочь иметь ключ в режим набора пасты и отключить отображение вставки временно, см :help 'paste'и :help 'pastetoggle'. Имейте в виду, что это может сделать вставки более сложными.

Наконец, сделайте макрос максимально простым, сводя к минимуму движение, переключение режимов и т. Д.

Удачи.

ZeroKelvinKeyboard
источник