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

Jon*_*han 4 vim regex

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

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

Dr *_*tty 8

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

  • @Jon 逗号是一个分隔符——它后面的任何字符都用于分隔搜索表达式、替换表达式和任何选项(在本例中为 `g`)。(通常使用 `/`,但是当你有很多反斜杠时,看起来不太好。)`-\@&lt;!` 阻止模式在 '-' 之后立即匹配,而 `-\@ !' 防止它在“-”之前立即匹配。 (2认同)