我经常使用的文本文件中,单词分隔符的空格数量不定(像 Word 这样的文本处理器会这样做,为了在某些字体中由于字母大小的不同而公平分配空格数量,甚至在保存为纯文本时,它们也会放置这些令人讨厌的变量长度的空格)。
我想自动化替换这些具有可变长度的空格序列为单个空格。我猜测可以用正则表达式实现,但段落开头也有空格(通常是四个,但不总是),我希望只留下这些空格不变,所以基本上我的正则表达式也不应该触及这些前导空格,这增加了复杂性。
我正在使用 vim,如果可以的话,vim 正则表达式语言中的正则表达式对我非常有用。
目前我的进展如下:
:%s/ \+/ /g
但它不能正确工作。
我也考虑编写一个vim脚本,逐行解析文本行,逐个字符处理每一行并跳过第一个字符后的空格,但我觉得这可能有点过度。