Я записал простой макрос и воспроизвел его в следующих строках, но кажется, что скорость воспроизведения очень низкая (обрабатывать очень мало строк в секунду). Ожидается ли это и есть ли способ улучшить такую скорость?
Действительно lazyredraw, возможно, лучшее решение. Вы также можете предоставить свой макрос и пример файла, чтобы мы могли посмотреть, можно ли его оптимизировать.
statox
Ответы:
12
Установка lazyredrawwith :set lazyredrawзначительно улучшит скорость выполнения макроса, не перерисовывая экран во время выполнения макроса или выполнения команды, отличной от введенной вами, см. :help 'lazyredraw'Дополнительную информацию.
Еще один способ уменьшить количество лишних данных - убедиться, что вы не тратите время на автоматическое преобразование или сопоставление. Если ваши макросы все еще работают медленно после запуска, проверьте файл vimrc на наличие медленных или ненужных отображений и удалите ненужные плагины. В моем случае у меня был autocmd, который запускался, и внешняя программа для отключения CapsLock при выходе из режима вставки, это было удобно и обычно незаметно, но сильно замедляло вставку макросов.
Если макрос входит в режиме вставки, где у вас есть много отображений, это может помочь иметь ключ в режим набора пасты и отключить отображение вставки временно, см :help 'paste'и :help 'pastetoggle'. Имейте в виду, что это может сделать вставки более сложными.
Наконец, сделайте макрос максимально простым, сводя к минимуму движение, переключение режимов и т. Д.
:set lazyredraw
(:h lazyredraw
)lazyredraw
, возможно, лучшее решение. Вы также можете предоставить свой макрос и пример файла, чтобы мы могли посмотреть, можно ли его оптимизировать.Ответы:
Установка
lazyredraw
with:set lazyredraw
значительно улучшит скорость выполнения макроса, не перерисовывая экран во время выполнения макроса или выполнения команды, отличной от введенной вами, см.:help 'lazyredraw'
Дополнительную информацию.Еще один способ уменьшить количество лишних данных - убедиться, что вы не тратите время на автоматическое преобразование или сопоставление. Если ваши макросы все еще работают медленно после запуска, проверьте файл vimrc на наличие медленных или ненужных отображений и удалите ненужные плагины. В моем случае у меня был autocmd, который запускался, и внешняя программа для отключения CapsLock при выходе из режима вставки, это было удобно и обычно незаметно, но сильно замедляло вставку макросов.
Если макрос входит в режиме вставки, где у вас есть много отображений, это может помочь иметь ключ в режим набора пасты и отключить отображение вставки временно, см
:help 'paste'
и:help 'pastetoggle'
. Имейте в виду, что это может сделать вставки более сложными.Наконец, сделайте макрос максимально простым, сводя к минимуму движение, переключение режимов и т. Д.
Удачи.
источник