有没有办法在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似乎是最简单的解决方案(至少对我来说).

下面的示例用REPLACE_ [counter](REPLACE_1,REPLACE_2等)替换所有出现的PATTERN:

: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

正则表达式 – gVim查找/替换为计数器的更多相关文章

  1. windows – 我可以强制gVim在新标签中打开拖入的文件吗?

    我希望gVim打开拖入其中的文件以在新标签中打开,而不是替换当前文件.Thisquestion是在正确的轨道上,但我希望能够运行多个gVim实例,只能将文件拖到我想要的窗口.我在Windows7上运行.不,你不能,在Windows应用程序的实现中指定拖放的默认操作.尚未实现在新选项卡中打开已删除的文件,因此不会.但是gVim是开源的…所以你可以提交一个补丁,如果你真的想要这个:)

  2. 在Ubuntu中使用GVim“无法创建Ubuntu菜单代理”

    我在尝试时在终端窗口中收到此错误gvim启动,但然后发生此错误.任何帮助是极大的赞赏.你得到的原因是因为Gvim默认情况下在Ubuntu中没有appmenu.您可以通过为Gvim添加全局菜单来解决此问题.运行命令UBUNTU_MENUPROXY=gvim而不是gvim将帮助您摆脱该警告.您还可以考虑将gvim别名化为上述命令.有关更多信息,请参阅Howtogetglobalapplicationm

  3. 正则表达式 – gVim查找/替换为计数器

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

  4. 插件 – 如何在Ubuntu下编译gVim?

    我正在尝试为gVim安装codecheck插件,但为了这样做,我必须使用插件编译gVim.在apt上,gVim包的每个apt-get源都会下载普通的Vim源,所以我想编译GUI必须是一个配置选项.但是,我可以在Vim上安装插件但是我无法编译gVim.有没有帮助编译gVim?我很确定你可以在配置时添加–enable-gui=gtk2.至少,这就是我记得这样做的方式.

  5. windows – 如何在gvim(win32)中缩进选择?

    我想缩进一段文字.我可以在linux的givm版本中做到这一点.我这样做是gvim的状态,我不在插入或视觉模式.底部的酒吧在左边是空白,行号,百分比显示在右边.然后我执行以下过程:我通过单击并拖动来选择一个文本块.然后我打了班.之后,我点击了esc,文本块将移动到一个选项卡上.如果我在Windows中这样做,那么它只是用>.我只是运行股票winrc文件和版本7.1的GVIM.如果您首先输入S

随机推荐

  1. 法国电话号码的正则表达式

    我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……

  2. 正则表达式 – perl分裂奇怪的行为

    PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.

  3. 正则表达式 – 正则表达式大于和小于

    我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.

  4. 如何使用正则表达式用空格替换字符之间的短划线

    我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?

  5. 正则表达式 – /bb | [^ b] {2} /它是如何工作的?

    有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?

  6. 正则表达式 – 在Scala中验证电子邮件一行

    在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp

  7. 正则表达式对小字符串的暴力

    在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?

  8. 正则表达式 – 为什么`stoutest`不是有效的正则表达式?

    isthedelimiter,thenthematch-only-onceruleof?PATTERN?

  9. 正则表达式 – 替换..与.在R

    我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.

  10. 正则表达式 – 如何在字符串中的特定位置添加字符?

    我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.

返回
顶部