在vim中,如何用空格替换正则表达式?

时间:2011-05-23 19:42:37

标签: vim

在我的具体案例中,我有

(function(){

我希望用

替换它
<whitespace char>xxx<whitespace char>

所以它会从

开始
$('#myId').click(function(){do_something()})

$('#myId').click xxx do_something()})

我试过

:s%/(function(){/ xxx /g  

但它会引发错误 抛出错误'E486:Pattern not found',即使我只能找到/(function(){/。也没有尝试将\ s添加到替换文本工作中。

(对于这个问题的奇怪格式感到抱歉。并没有真正顺利进行)

3 个答案:

答案 0 :(得分:5)

转置了s和%

:s%/(function(){/ xxx /g  

应该成为

:%s/(function(){/ xxx /g  

我尝试了它,它适用于我。

前者回归 E486:未找到模式:/(function(){/ xxx / g

答案 1 :(得分:3)

您唯一的问题是:%s不是:s%

:%将整个文件指定为以下Ex命令的范围。

:s%表示使用'%'作为正则表达式分隔符(而不是/)。因此,在您的查询中,您没有在当前行中找到“/(函数”。

答案 2 :(得分:1)

你必须逃避一些角色

:s%/\(function\(\)\{/ xxx /g