vi搜索和替换,将搜索结果放入同一行的其他字段中

时间:2014-05-25 12:01:24

标签: linux vim replace text-editor vi

嗨我有一个充满字符串的文件

  

create_net_shape -no_snap -type path -net VDD -layer M9 -datatype 0 -path_type 0 -width 0.4 -route_type user_enter -points {{2965.64 302.835} {2979.93 302.835}}

我希望能够在vi中搜索和替换某个字段,基于其他字段的结果

我输出为

  

create_net_shape -no_snap -type path -net VDD -layer M9 -datatype 9 -path_type 0 -width 0.4 -route_type user_enter -points {{2965.64 302.835} {2979.93 302.835}}

等等

如何在一个字段中使用我的搜索结果并将其应用到另一个字段中

感谢

1 个答案:

答案 0 :(得分:1)

尝试此命令:

:%s/\v-layer M([0-9]+) -datatype \zs[0-9]+/\1/

  • 该模式将在digits之后与-datatype匹配。
  • 我们将这些digits替换为-layer M
  • 之后的:help \v
  • 一些高级功能。您可以使用:help \zs和{{1}}
  • 阅读vimdoc