为什么我的 vim 宏有时会停止工作?

为什么我的 vim 宏有时会停止工作?

我有时会遇到这种情况,但我一直不知道原因。假设我开始在 vim 中录制(按 q),然后我完成并使用了几次宏。然后我做了其他事情,比如继续编辑文件。然后我想再次使用宏,但这次发生了其他事情,例如,光标向后移动了一个单词。

这种情况发生过几次。例如,今天我启动了一个宏 (q 2),然后我使用它 (@ 2) 几次。然后我输入一些文本并尝试再次使用宏 (@ 2),但这次光标向后移动了一个单词,而宏应该将一些文本格式化为 HTML。

每次遇到这种情况,我都会尝试重现它。我创建一个虚拟宏,然后再次执行相同的操作,但我从来都无法随意重现它。当我尝试重现此行为时,宏才会起作用。

发生这种情况时我并没有关闭或者以其他方式暂停 vim。

我知道根据提供的信息,这个问题可能很难回答,但我希望你们中的一些人以前遇到过这种情况,并且能够弄清楚为什么会发生这种情况。我很确定这只是我对 vim 不了解。

答案1

Vim 内部使用编号寄存器来执行诸如y或 之类的命令d

您不应该使用它们来记录您的宏,因为它们在每次提取或删除时都会被覆盖。

相反,使用寄存器az,而 Vim 不会触碰它。

相关内容