我知道进行全局替换的正则表达式,
%s/old/new/g
你如何在Vim中进行交互式搜索替换?
添加标志c(在vim命令提示符下):
:%s/old/new/gc
每次出现'old'时都会给你一个是/否的提示.
一旦选择了确认替换,Vim的内置帮助提供了有关可用选项的有用信息.使用:
:h :s
然后滚动到确认选项部分.截图如下:
例如,要替换此匹配和所有剩余匹配,请使用a
.
Mark Biek指出使用:
%s/old/new/gc
全局搜索替换为每个替换的确认.但是,我也喜欢以交互方式验证旧文本是否正确匹配.我首先使用正则表达式进行搜索,然后重用该模式:
/old.pattern.to.match %s//replacement/gc
在s//
将使用最近的搜索模式.
我认为你正在寻找c
,例如s/abc/123/gc
,这将导致VIM确认更换.请参阅:help:替换更多信息.
我通常使用find/substitute/next/repeat命令:-)
/old3snew n.n.n.n.n.n.n.
那是find "old"
,substitute 3 characters for "new"
,find next
,repeat substitute
,等.
这对于大规模替换来说是一种痛苦,但它可以让你有选择地忽略一些旧的(通过n
再次按下来找到下一个而不是.
重复替换).
如果您只想计算'abc'的出现次数,那么您可以这样做%s/abc//gn
.这不会取代任何东西,只会报告'abc'的出现次数.