如何删除vim中2 char或更长的所有空格?

时间:2012-03-26 07:22:45

标签: vim

我想删除vim中打开的文件中的每个双空格,这是怎么做的?

例如在此处删除空间

a  a

但保留空间

a a

4 个答案:

答案 0 :(得分:6)

:%s/\s\{2,}//g

元素是:

  • %s替换整个文件
  • \s替代品:空间
  • \{2,}两次或更多次出现
  • //无所事事(即删除)
  • g在当前行(不仅是第一行)
  • 上的每次出现时都会这样做

如果你看anatomy of the substitute call

,元素会变得更清晰
s/PATTERN/REPLACEMENT/FLAGS

因此,我们的PATTERN\s\{2,}REPLACEMENT为空,FLAGS仅为g。范围以前缀为前缀,%表示整个文件。如果您只想在某些行上执行此操作,可以直观地选择行,然后键入:s....


修改
在你的问题中,你写了你想要的

  

删除文件中的每个双重空格

这就是我回答的问题。如果要将两个或多个空格替换为1,则命令为

:%s/\s\{2,}/ /g

答案 1 :(得分:0)

这个:%s/ */ /g

怎么样?

/*之间有两个空格)

答案 2 :(得分:0)

您可以执行以下操作:

:%s/\s\s\+/ /g

答案 3 :(得分:0)

虽然{的答案效率最高,但我发现更容易记住空间*解决方案。正确的解决方案将包括三个空格(因为*匹配0或更多)。

:%s/   */ /g

当然,这也假设您想要用一个空格替换两个或更多空格。