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,}/

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.


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.