2010-05-25 5 views

Répondre

9

Vim regex ne possède pas cette fonctionnalité, vous devez utiliser un peu de répétition pour créer le même comportement:

/\(\%(condition\)\@=then\|\%(condition\)\@!else\) 

Notez que vous devez utiliser la condition deux fois dans la version Vim et que lookahead/lookbehind doit toujours être l'opposé dans les parties then/else sinon votre regex ne sera pas correcte.

3

pas nativement, si vous avez + perl dans vim vous devriez être en mesure d'utiliser

:perldo s/search/replace/ 
2

L'état vim docs que les regexes vim ne prennent pas en charge les expressions conditionnelles (dans une section comparant le soutien du motif de vim avec Perl):

Enfin, ces constructions sont uniques à Perl:
- exécution de code arbitraire dans le regex: ({code perl})
- expressions conditionnelles?: (? (Condition) vrai-expr | false-expr)

Questions connexes