当前位置:  开发笔记 > 开发工具 > 正文

在Vim中交互式搜索/替换正则表达式?

如何解决《在Vim中交互式搜索/替换正则表达式?》经验,为你挑选了5个好方法。

我知道进行全局替换的正则表达式,

     %s/old/new/g

你如何在Vim中进行交互式搜索替换?



1> Mark Biek..:

添加标志c(在vim命令提示符下):

:%s/old/new/gc

每次出现'old'时都会给你一个是/否的提示.

文本中突出显示

一旦选择了确认替换,Vim的内置帮助提供了有关可用选项的有用信息.使用:

:h :s

然后滚动到确认选项部分.截图如下:

文字说

例如,要替换此匹配和所有剩余匹配,请使用a.


+1,我今天学到了新东西!vim有这么多隐藏的秘密.. :)
我想"c"是为了"确认"
@jeremy:这需要知道帮助命令存在,并且知道需要输入"冒号"切换来转到相关的帮助文件.一个人如何或在哪里学到这一点?
学习vim命令有点像玩Nethack.你永远不会知道单个角色会有什么奇迹.
老实说,我并不是想要讽刺,但所有这一切都可以通过做":help:s"来找到,这会让你直接找到":help:s_flags".
@Pax交替建立一个树堡和编写BASIC程序打印出脏话:)
或者使用ctrl-r ctrl-w检索光标下的文本.我最近在这里学到的东西.

2> Vincent Sche..:

Mark Biek指出使用:

%s/old/new/gc

全局搜索替换为每个替换的确认.但是,我也喜欢以交互方式验证旧文本是否正确匹配.我首先使用正则表达式进行搜索,然后重用该模式:

/old.pattern.to.match
%s//replacement/gc

s//将使用最近的搜索模式.


使用/学习vim的最大好处之一就是兔子洞有多深!
很好,我一直在进行搜索,然后使用<Cr> /将上一次搜索粘贴到替代命令中。

3> Logan Capald..:

我认为你正在寻找c,例如s/abc/123/gc,这将导致VIM确认更换.请参阅:help:替换更多信息.



4> paxdiablo..:

我通常使用find/substitute/next/repeat命令:-)

/old3snewn.n.n.n.n.n.n.

那是find "old",substitute 3 characters for "new",find next,repeat substitute,等.

这对于大规模替换来说是一种痛苦,但它可以让你有选择地忽略一些旧的(通过n再次按下来找到下一个而不是.重复替换).



5> Amjith..:

如果您只想计算'abc'的出现次数,那么您可以这样做%s/abc//gn.这不会取代任何东西,只会报告'abc'的出现次数.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有