2009-10-27 274 views
26

替换括号在Vim中我有:我怎样才能在vim

simulación (fig.),pretexto (fig.),excusa (fig.). 

我的目标是:

simulación ,pretexto ,excusa . 

我曾尝试用::%s/\(fig\.\)//g,但它不工作。

+1

你的命令看起来不错。运行命令时,VIM是否显示错误? – Marcin 2009-10-27 15:35:38

+0

它也适用于我 – ennuikiller 2009-10-27 15:37:02

+1

我看到当你第一次提交问题时,SO解析器隐藏了斜杠,难怪我们感到困惑。 – Marcin 2009-10-27 15:52:51

回答

43

默认情况下,Vim不需要转义括号。尝试:

:%s/(fig\.)//g 

参见:

:help magic 

编辑点的

添加反斜杠。

+1

是不是Vim使用转义括号之间的内容作为一个组,然后把它扔掉?这是一个重要的区别。 – 2009-10-27 15:40:18

+1

@Adriano:确实,这不是@Jogusa想要的。 – DrAl 2009-10-27 15:42:54

+0

非常感谢,它的工作原理:-) 谢谢你的第二个提示。 – Jogusa 2009-10-27 15:44:46

3

在Vim 7.2(WinXP)上,您使用的命令仅删除'fig。',但不包含括号。 使用%s/(fig\.)//g给出了预期的结果。

编辑逃脱点,因为它匹配任何字符,而不仅仅是一个点。

6

不要逃离parens - 默认情况下,vim使用“魔法”转义方案。 尝试:

:%s/(fig\.)//g 

更多信息:http://vimdoc.sourceforge.net/htmldoc/pattern.html#/符\ v

+2

如果你不逃离这个点,这也会匹配(figx)(参见我和阿德里亚诺的编辑:我们都是这么做的!)。 – DrAl 2009-10-27 16:53:34