用于确认替换的vim宏

用于确认替换的vim宏,vim,Vim,我想编写宏来进行确认替换,类似于:%s/old/new/gc,其中新旧不断变化(它们是由同一个宏动态构造的)。但我无法在键入冒号命令时停止录制宏,输入该命令后,我会出现确认提示替换为新(y/n/a/q/l/^E/^y)?如您所见,现在键入q将退出替换命令,而不会停止宏 那么,我想要的是: 我需要宏,它将执行:%s/old/new/gc,因为我需要确认每个替换。 或者其他解决该问题的自动化解决方案。也许有一种方法可以在输入冒号命令时停止录制宏?您可以尝试使用正则表达式进行搜索替换。下面应该执行上面

我想编写宏来进行确认替换,类似于
:%s/old/new/gc
,其中新旧不断变化(它们是由同一个宏动态构造的)。但我无法在键入冒号命令时停止录制宏,输入该命令后,我会出现确认提示
替换为新(y/n/a/q/l/^E/^y)?
如您所见,现在键入
q
将退出替换命令,而不会停止宏

那么,我想要的是: 我需要宏,它将执行
:%s/old/new/gc
,因为我需要确认每个替换。
或者其他解决该问题的自动化解决方案。也许有一种方法可以在输入冒号命令时停止录制宏?

您可以尝试使用正则表达式进行搜索替换。下面应该执行上面描述的操作

%s/a:\(\w\{-}-{-}fact\)/a:sld-\1/gc

见:


我觉得这是一个XY问题。你能谈谈你真正的问题吗?你想对你的文本做什么?有一大堆像
这样的行,我需要在每个像
这样的字段名之前添加'sld-`前缀。这些名称也出现在文件的其余部分,因此它们也应该被重命名。但是我不能使用简单的替换,因为我遇到了下一个字段将是
,所以我需要用
sld-fact
替换名字
fact
,用
sld-cult-fact
替换第二个
cult-fact
,所以我需要选择要替换的
fact
发生的情况