Je veux trouver une ligne qui a 'foo' et 'bar' dans cet ordre mais pas nécessairement l'un à côté de l'autre.Comment puis-je rechercher dans vim une ligne qui a 2 mots spécifiques?
J'ai essayé ce qui suit et cela n'a pas fonctionné:
/foo.*bar
Je veux trouver une ligne qui a 'foo' et 'bar' dans cet ordre mais pas nécessairement l'un à côté de l'autre.Comment puis-je rechercher dans vim une ligne qui a 2 mots spécifiques?
J'ai essayé ce qui suit et cela n'a pas fonctionné:
/foo.*bar
Utilisation:
:set magic
/foo.*bar
Le réglage 'magique' détermine comment VIM traite les caractères spéciaux dans les expressions régulières. Lorsqu'il est désactivé, VIM traite tous les caractères littéralement, ce qui signifie que l'expression que vous avez écrite foo.*bar
recherchera réellement cette chaîne. Cependant, lorsque 'magic' est activé, les caractères spéciaux regex prennent leur signification spéciale et fonctionnent plus comme vous le souhaitez. Il est recommandé de toujours utiliser :set magic
sauf s'il s'agit de scripts Vi très anciens, il suffit donc de l'ajouter à votre vimrc et vous serez configuré.
Je suis assez sûr que c'est un défaut de nos jours (au moins mon vim sur Windows). –
Je suis d'accord, c'est aussi la valeur par défaut, mais je ne sais pas pourquoi cela n'a pas été fait pour Sasha - peut-être utilise-t-il une version plus ancienne ou appelle-t-il vi au lieu de vim? – spatz
Works pour moi:
/text.*text2
Fonctionne aussi pour moi –
Ditto; insensible à la casse: /FOO.*BAR\c –
Malheureusement "travaille pour moi" ne donne pas de raison (s) pourquoi ou cause probable (s). – crw
Il y a aussi un grand plug-in à faire la recherche booléenne dans vim:
Peut-être que votre problème est le paramètre « magique ». Lire: aidez la 'magie' et: réglez la magie? pour voir si c'est le problème. – spatz
c'était ça ... qu'est-ce que la magie? –