如何在Vim中写这个替换?

时间:2015-07-22 05:03:34

标签: vim

所以我有一行代码包含以下内容:

eq(["JetFuelBird", "JetFuelBet", "JetFuelComputer", "JetFuelDog", "JetFuelElephant"])

我想将以JetFuel开头的每个短语与结尾的单词交换,以便我有类似 eq [" BirdJetFuel"," BetJetFuel" ....等等。 ]

我尝试过类似的事情:

:24s/.*(JetFuel)(\w)"/.*\1JetFuel/g

其中24是行号并且找不到模式错误......我该如何写这个?这似乎应该很简单。

1 个答案:

答案 0 :(得分:4)

:24s/JetFuel\(\w\+\)/\1JetFuel/g

Vim通常使用旧式的正则表达式,其中许多“特殊字符”还不是特殊的,因此当它们变得特殊时,它们需要被转义。现在我们已经习惯了正则表达式,默认情况下所有特殊字符都是特殊的,当我们希望它们不特殊时我们将它们转义。您还可以使用“非常神奇”的开关(\v),这使正则表达式更加现代:

:24s/\vJetFuel(\w+)/\1JetFuel/g