Her*_*itz 23
粘贴40,000行并不需要很长时间,但如果你不断更新屏幕,就像你经常在宏中那样减慢了速度.
首先,关于你的宏应该做什么的问题.如果它只是粘贴默认寄存器的内容,那么正确的宏定义就是qapjq.无需将光标定位在前一行的特定位置.[编辑:抱歉,我假设你正在进行行式粘贴,如果你在行尾贴上字符顺序注册,则需要定位....]
其次,您可以通过设置lazyredraw(:set lazyredraw)来加速当前的宏,因此屏幕不会随着更新而更新.可能不会把事情加速很多,像这样的键盘宏不像是直接处理缓冲区.
第三,这是另一种方法,需要大约一秒钟:
.,+40000g/.*/normal! $p
这个是正常的.正如Herbert Sitz所写,更新屏幕的速度很慢.
您可能只想运行替换命令::.,+40000s/.*/&<c-r>".
.,+40000 是包括当前行和40000以下的范围.* 在模式中匹配整行& 在字符串中是匹配的行<c-r>" 粘贴未命名寄存器的内容