vim regex n'a pas besoin de \ pour s'échapper

17

Dans Vim est - il une possibilité d'écrire regexs dans le même style que Awk par exemple

/sp\{0,\}/
serait - il

/sp{0,}/

MageProspero
la source

Réponses:

29

Faire précéder votre modèle \vrendra le modèle «magique», et les symboles aiment {et [ont une signification interprétée (et les littéraux doivent être échappés).

Trouverait donc /\vsp{1,}ce que vous vouliez (je viens de le tester).

Vous pouvez en faire une sorte de défaut en remappant /à /\vavec les lignes suivantes dans votre vimrc:

nnoremap / /\v
vnoremap / /\v

Voir :help patternpour en savoir plus.

Edd Steel
la source
1

/sp\{0,}

Bien sûr {0,}, vous feriez mieux d'utiliser *: /sp*trouverait (comme ci-dessus) un «s» suivi de zéro ou plusieurs p. Notez que zéro ou plus est toujours vrai, donc il n'y a aucune raison pour cela dans cette expression particulière.

Kevin
la source
Ce sont toutes de bonnes informations et très utiles. Existe-t-il un moyen de désactiver l'échappement de caractères spéciaux dans vim?
MageProspero du
Je vois ce que vous voulez dire maintenant. J'en doute sérieusement, cela nécessiterait presque certainement un analyseur différent développé en parallèle, et je doute que ce soit une fonctionnalité suffisamment demandée pour justifier cette mise en œuvre et cette maintenance supplémentaires.
Kevin
-1

Vim n'a pas d'option pour émuler des expressions régulières de style awk, non. Il existe de nombreux dialectes d'expression régulière, et malheureusement, il y a toujours ces petites différences dialectiques à garder à l'esprit lors du passage d'un outil à un autre.

MetaEd
la source