如何停止运行 Vim 宏

22

我把一个宏录制到了一个寄存器中,并且使用了太多的重复次数。每个宏都需要花费很长时间才能完成。

如何取消/停止Vim执行宏?有没有一种方法可以在不终止编辑器进程的情况下实现?

以下是我遵循的步骤:

  1. 将宏录制到寄存器1中
  2. 我运行了1000次:1000@1
  3. 现在每个宏需要等待约6秒钟才能完成。

1
你应该在寄存器a到z中记录宏。寄存器1到9保留用于复制和删除,并且每次进行复制或删除操作时都会更新,这可能是您遇到的缓慢问题的原因。 - romainl
1
谢谢您的评论。我会改用字母。关于性能,我必须执行以下命令以使其运行更快: syntax off set undolevels=0 - BlueNile
1个回答

39

C-c可以正常工作。

此外,您可以让它在出现错误时中断(我认为这是默认设置)。有时我会暂时这样做。

 :se nowrapscan

为了避免在缓冲区上产生“无限”循环,请进行以下操作:


另外,为了加快宏执行速度,请将其设置为静默执行:

:silent! norm 1000@q

Ctrl-C 在 Windows 的 Vim 7.4 上无法使用。我已经升级到 Vim 8.0 并且在那里可以使用。 - mwardm
Vim(以前)默认配置了“Windows模式”(我讨厌它)。在Windows上,^C和^V被映射为...复制/粘贴。我认为^Q替换了^C,但我不确定。我通常会从vimrc中删掉任何behave mswin和相关的东西。 - sehe
@sehe 我想我之前尝试过按Ctrl-Q,但不幸的是,我已经将其设置为SlickRun的系统热键 :-) 正如你所暗示的那样,升级可能导致我的配置发生了变化,从而使事情得以顺利进行。 - mwardm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接