我知道可能有一种方法可以使用正则表达式来实现这一点,但我似乎无法弄清楚 vim 中的正则表达式。我尝试搜索:/-\{2}
但它也会捕获三个连字符。
我也不能只进行传统的查找和替换,因为我的文件中有三个连字符。搜索--
除了双连字符外,还会返回三连字符。
答案1
怎么样:%s,-\@<!---\@!,---,g
?这样它就不会将“---”更改为“----”。
答案2
您的示例对我有用,因此我怀疑您的文件中有一个看起来像连字符的不同字符。
我建议在正常模式下将光标放在一个上,键入yl
以提取字符,然后键入 /,然后按 control-r,然后按 " (双引号)。如果可行,您可以使用相同的技巧来创建替代命令。