Для вставки 40000 строк не требуется много времени, но если экран постоянно обновляется, как это часто бывает в макросе, который замедляет работу.
Во-первых, вопрос о том, какой у вас макросдолжен делать.Если это просто вставка содержимого регистра по умолчанию, тогда правильное определение макроса - просто qapjq
.Нет необходимости размещать курсор в определенном месте на предыдущей строке.[РЕДАКТИРОВАТЬ: извините, я предполагал, что вы делали вставку по аналогии, позиционирование необходимо, если вы вставляете символьный регистр в конце строки.,..]
Во-вторых, вы можете ускорить текущий макрос, установив lazyredraw (:set lazyredraw
), чтобы экран не обновлялся по ходу работы.Вероятно, не сильно ускорит процесс, подобные клавиатурные макросы не похожи на прямую обработку буфера.
В-третьих, вот еще один метод, который должен занимать около секунды: .,+40000g/.*/normal! $p