在Vim中搜索模式,排除一些可能性

时间:2019-04-23 15:34:19

标签: vim

我们如何在Vim中搜索某物,而不包括搜索可能涵盖的某些可能性?

例如:搜索How\s[a-z],但结果不应该包含How a,而应该包含How bHow c,...,How z。 / p>

更新 如@Jonathon K所指出的,上述说明性示例的一种可能的解决方案是How\s[b-z],这是正确的。但是我要寻找的是一种通用解决方案,其中可以排除Vim搜索中许多可能的解决方案之一(示例2:当我搜索ERROR时排除er*。即席解决方案可以在这种情况下也可以使用:))。

1 个答案:

答案 0 :(得分:2)

  

示例2:搜索er*时排除错误。在这种情况下,也可以使用临时解决方案。

仅供参考,er*将不匹配ERROR。它将与以下任何一项匹配:

  

e

     

er

     

errrrr

     

errrrrrrrrrrrrrrrrr

您可能正在考虑ER.*

继续前进...


您基本上是在寻找\@!量词。它断言前一个原子在当前位置不匹配。它也是零宽度。如果您想搜索ER.*但不匹配ERROR,则可以执行以下操作:

ER\(ROR\)\@!.*

或者,我更喜欢在(\v上加上“魔术”:

\vER(ROR)@!.*

或举第一个示例:

\vHow\sa@![a-z]

即使我建议像乔纳森指出的那样使用[b-z]:)