小编Joh*_*Doe的帖子

如何使用子匹配值在Vim中搜索和替换

我的HTML看起来像这样

<form>
  <input id="firstname" value=""/>
  <input id="lastname" value=""/>
  <input id="email" value=""/>
</form>
Run Code Online (Sandbox Code Playgroud)

我想在每个输入字段中添加name ="{id-name}"(参见下面的示例代码)

<form>
  <input id="firstname" name="firstname" value=""/>
  <input id="lastname" name="lastname" value=""/>
  <input id="email" name="email" value=""/>
</form>
Run Code Online (Sandbox Code Playgroud)

我怎么能用Vim做到这一点?

我在尝试

%s/id=".*"/\=submatch(0)/g
Run Code Online (Sandbox Code Playgroud)

这导致了两个问题:

1)搜索,从第一个报价搜索到最后一个报价.它应该从第一个引号搜索到下一个引用.

在此输入图像描述

2.)submatch(0)正在取得搜索的全部结果.我怎样才能将它隔离到只有两者之间的值id="{value}"

我经常遇到这个问题,弄清楚这个vim命令可以帮助我节省很多时间.主要是将搜索结果拆分为submatch()我还看到人们在堆栈上使用\1 \2而不是submatch()存储结果,这种方法更好吗?

任何帮助将不胜感激!谢谢!

linux vi vim terminal

2
推荐指数
1
解决办法
2088
查看次数

标签 统计

linux ×1

terminal ×1

vi ×1

vim ×1