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


13

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


4
Попробуйте :set lazyredraw( :h lazyredraw)
VanLaser

Действительно lazyredraw, возможно, лучшее решение. Вы также можете предоставить свой макрос и пример файла, чтобы мы могли посмотреть, можно ли его оптимизировать.
statox

Ответы:


12

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

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

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

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

Удачи.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.