如何将正则表达式应用于多行?

时间:2011-12-12 22:04:29

标签: vim

假设我想将以下内容应用到我在vim中编辑的文件中的第60行到第80行。

 :s/{/      {/

有办法做到这一点吗?

谢谢!

3 个答案:

答案 0 :(得分:8)

您可以在搜索命令前加上一个行范围,例如:

:60,80s/{/      {/

如果您希望从第60行应用更改并转发使用:60,s。如果要将当前行更改为80,请执行以下操作::,80s。您甚至可以:.+3,80s在当前行+3和第80行之间应用搜索。

答案 1 :(得分:2)

您可以使用here所述的几种类型的范围。 here是官方文档。

答案 2 :(得分:0)

您还可以使用m(标记)命令将要应用正则表达式的部分的第一行标记为。然后将光标移动到该部分的最后一行。然后regex命令变为:

:“一个,. S:/富/酒吧/

表示,从标记为“a”的行到当前行,用条形码替换foo。