我经常处理文本文件,这些文本文件使用可变量的空格作为单词分隔符(像 Word 这样的文本处理器就是这样做的,它们公平地分配由于特定字体中字母大小不同而产生的空格数量,即使以纯文本形式保存,它们也会把这些恼人的可变量空格数量放在一起)。
我想用单个空格自动替换这些长度可变的空格序列。我怀疑正则表达式可以做到这一点,但是在段落的开头也有空格(通常是四个,但并不总是如此) ,我想让它们保持不变,所以基本上我的正则表达式也不应该触及前面的空格,这增加了复杂性。
我使用的是 vim,因此如果可行的话,使用 vim regex 方言的 regex 对我来说非常有用。
我目前的进展是这样的:
:%s/ \+/ /g
但它不能正常工作。
我还在考虑编写一个 vim 脚本,可以逐行解析文本行,逐字符处理每一行字符,并跳过第一行之后的空白,但我有一种感觉,这将是过分的。