gpt4 book ai didi

regex - gVim查找/替换计数器

转载 作者:行者123 更新时间:2023-12-03 15:09:42 25 4
gpt4 key购买 nike

有没有办法在gVim搜索/替换中从某种计数器变量中插入值?

例如转换此文件:

<SomeElement Id="F" ... />
<SomeElement Id="F" ... />
<SomeElement Id="F" ... />


此结果文档:

<SomeElement Id="1" ... />
<SomeElement Id="2" ... />
<SomeElement Id="3" ... />


我想命令看起来像这样:

:%s/^\(\s*<SomeElement Id="\)F\(".*\)$/\1<insert-counter-here>\2/g


我正在使用他们提供的安装程序中的最新Windows版本。我强烈希望不要安装任何其他工具。

另外,理想情况下,我希望避免安装脚本来支持此操作,但是我愿意,如果这样做是唯一的方法。

最佳答案

Vim wiki instructions似乎是最简单的解决方案(至少对我而言)。

下面的示例将所有出现的PATTERN替换为REPLACE_[counter]REPLACE_1REPLACE_2等):

:let i=1 | g/PATTERN/s//\='REPLACE_'.i/ | let i=i+1


要回答这个问题,它可能看起来像这样:

:let i=1 | g/SomeElement Id="F"/s//\='SomeElement Id="'.i.'"'/ | let i=i+1


替代解决方案

如果有人对使用 %s语法的解决方案感兴趣,我建议您看一下@ib。答案是:

:let n=[0] | %s/Id="\zsF\ze"/\=map(n,'v:val+1')/g

关于regex - gVim查找/替换计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com