7

我试过:s%/{//g:s%/\{//g。如何在 vim 中查找和替换(实际上是删除)大括号?

谢谢。

编辑:我的意思是在 s 之前有 %,所以我可能只是输入错误。感谢大家的快速回复。

4

3 回答 3

15

@chaos 的扩展

字符(即:左大{括号,不要与括号[或括号混淆(
......不需要转义。

您可能的意思是删除所有大括号。百分号应该在's'之前,而不是之后。这意味着在所有范围内执行搜索。

因此,只需执行以下操作:

:%s/{//g
:%s/}//g

全部做完!

您应该考虑阅读 VIM 范围。例如,要在当前行和最多 10 行下进行替换,您可以执行以下操作:

:.,.+10s/}//g
于 2012-06-27T16:39:36.777 回答
5

:s/{//g工作正常。你到底为什么要把它放在%后面s?通过这样做,您将指示%为您的正则表达式分隔符,这使您的模式的其余部分不起作用,因为它的编写就像/您的分隔符一样。

哦,我明白了,你的意思是:%s/{//g

于 2012-06-27T16:37:35.387 回答
5

您应该在整个文件中替换它%之前s,不仅在当前行:

:%s/{//g
于 2012-06-27T16:38:08.603 回答