2014-05-25 33 views
0

您好我有一個完整的字符串的文件六搜索和替換,把一個搜索結果到其他領域在同一行

create_net_shape -no_snap型路徑-net VDD - 層M9 -datatype -path_type 0 -width 0.4 -route_type user_enter -points {{2965.64 302.835} {2979.93 302.835}}

我希望能夠根據提交的其他結果搜索和更換VI,某一領域

I NEDD輸出爲

create_net_shape -no_snap型路徑-net VDD - 層M9 -datatype -path_type 0 -width 0.4 -route_type user_enter -points {{2965.64 302.835} {2979.93 302.835} }

我如何使用我的搜索結果中的一個字段,並將其應用到其他

感謝

+0

你是什麼意思'其他存檔的結果? –

+0

它是'M9'中的'9'嗎? –

+0

嗨,我的意思是,如果我在字段#8字符串「M9」遇到我需要我的字段#10爲「9」, 如果我遇到「...-層M10 - 數據類型0 ...」輸出應...-層M10 -datatype 10 ...」 我需要事先設置一個數據類型數量根據層數 感謝 – ilansh

回答

1

試試這個命令:

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

  • 格局將-datatype之後匹配digits
  • 我們用這些digits替換後的那些-layer M
  • 一些高級功能。你可以閱讀vimdoc :help \v:help \zs
+0

千電子伏,感謝 工作就像一個魅力 可以請你解釋一下? 我承擔()與tcl類似,搜索詞go's裏面有些var,但你怎麼稱呼它? 什麼是\ v,\ z 和\\ 1 – ilansh

+0

沒有'\ v'(很神奇),你需要重寫'(...)'爲'\(... \)'來捕獲一個沒有'\ zs'的組 – kev

+0

,你需要使用'\ @<='(0寬度前面的匹配)。 -糖。 – kev