客观的
拉出一行并用它来覆盖它后面的一些行。
假设
在这种情况下,最好手动选择要应用替换的行。换句话说,不需要自动查找和替换。
比喻
将此过程视为从一行文本创建一个“标记”并遍历项目列表(每个项目是“标记”行之后的一行文本)并决定是否应使用该行的内容覆盖该行“邮票”与否(在前一种情况下,当然用“邮票”代替该行)。
触发用戳记内容替换光标下的行的最后一步应该尽可能简单;最好像按 .
(重复上次更改)或 @@
(执行宏寄存器的内容 @
)一样简单。
问题
当然,简单的工作流程如下。
- 将光标定位在要复制的行上(使用移动命令)。
- 进入逐行可视模式(通过
V
命令)。 - 复制选定的文本(使用
y
命令)。 - 手动将光标定位到要替换的行上(使用移动命令)。
- 再次进入可视模式以选择要替换的文本(使用
V
命令)。 - 粘贴在选择上(使用
p
命令)。
但是,当必须多次更换时,这种方法不起作用。具体来说,替换步骤 6 中的文本会覆盖(未命名的)寄存器,该寄存器包含最初复制并打算用作“标记”的行。
我试过的
我曾尝试使用"_y
拉动或删除到_
寄存器中,以避免丢失邮票的内容,但我正在寻找最终可以快速舒适地键入的东西,因为我手动浏览列表并在我的位置应用替换觉得合适。
我不想使用的东西
如果可以的话,我宁愿不为此使用宏或“重映射”。
说明性示例文件
请参阅下面的示例起始文件,然后是所需的最终阶段,以获得进一步的清晰度。
样本文件,起始条件
在这个阶段,我选择blueberry
并使其成为我的“印章”。
blueberry
apple
banana
coconut
apple
banana
coconut
apple
banana
coconut
示例文件,所需的最终状态
在列表中移动之后,我应用了一些替换,在一些行上“加盖”,使它们与“印记”blueberry
行相同。
blueberry
apple
banana
blueberry
apple
banana
coconut
apple
banana
blueberry