13

我真的很喜欢 YankRing 的行为,它让我可以不假思索地访问我已经yanked、eleted 或dhanged的​​最后几件东西c

然而,重复命令完全缺少像这样的补充功能.,最常见的是当我键入我真正想要重复的内容时,然后通过按下x清理某些内容意外覆盖了该编辑。

通常可以通过视觉模式拉动我刚刚输入的内容来恢复一段时间,但这并不理想。

记住过去的几个命令应该很容易。

问题是如何从 Vim 中提取包含在任何存储中的最后一个命令的表示形式,.在它被吹走之前会做什么?

如果真的像我担心的那样,唯一的方法是让插件绑定到每个可以编辑内容的命令,并以存储我们自己的重复缓冲区的方式对其进行检测。这真的不切实际,因为我已经可以想象有多少其他插件会损坏。但是,如果可以的话,我仍然真的很想要这个功能。

4

2 回答 2

3

不幸的是,没有办法获取和重播命令后面的.命令。唯一的解决方法是永久处于宏录制模式,并使用宏寄存器作为.命令的替代品。

RepeatLast 插件采用了这种策略,它可能会提供您想要的东西。

于 2013-07-31T06:26:25.043 回答
1

插入模式下的关键字完成和/或 ctrl-a 应该可以满足您的需求。

一个更像 yankring 的解决方案应该是可能的,但正如你所说,可能有点太侵入性了。在要求其他人为您做之前,您是否自己查看过 vim.org?

于 2013-07-31T05:50:51.330 回答