在Vim中删除两个字符之间空格的有效方法

时间:2012-03-18 04:12:22

标签: regex vim

我经常遇到这个问题。例如。

a b c d abcd

x y z w xyzw

现在我必须删除仅单个字符之间的空格。这些线条前面也有一些字符。

我想尝试这样的事情:s / [a-z] [a-z] / [a-z] [a-z] / g - 什么可能替换表达式?

这只是问题的一个例子。当我不得不应用一些搜索来找到这些类型的表达式并替换为表达式而不是完全替换它们而只替换它的一部分时,我会遇到类似的问题。

编辑:想要删除单个字符之间的单个空格。

2 个答案:

答案 0 :(得分:8)

使用带有子串集合的正则表达式:

s/\([a-z]\) \([a-z]\)/\1\2/g

\ 1指的是第一个\(...\)之间正则表达式匹配的字符,\ 2是第二个\(...\)

之间正则表达式匹配的字符

答案 1 :(得分:1)

感谢。我遇到了类似的问题。我想从一行中的所有数字中删除所有空格,但在其他地方保留空格。

%s/\\([0-9]\\) \\([0-9]\\)/\1\2/g

做了这个伎俩。