如何在 vim 中查找/替换双连字符 (--) 和三重连字符 (---) 的实例?

如何在 vim 中查找/替换双连字符 (--) 和三重连字符 (---) 的实例?

我知道可能有一种方法可以使用正则表达式来实现这一点,但我似乎无法弄清楚 vim 中的正则表达式。我尝试搜索:/-\{2}但它也会捕获三个连字符。

我也不能只进行传统的查找和替换,因为我的文件中有三个连字符。搜索--除了双连字符外,还会返回三连字符。

答案1

怎么样:%s,-\@<!---\@!,---,g?这样它就不会将“---”更改为“----”。

答案2

您的示例对我有用,因此我怀疑您的文件中有一个看起来像连字符的不同字符。

我建议在正常模式下将光标放在一个上,键入yl以提取字符,然后键入 /,然后按 control-r,然后按 " (双引号)。如果可行,您可以使用相同的技巧来创建替代命令。

相关内容