Comment puis-je rechercher dans vim pour une ligne qui a 2 mots spécifiques?
Je veux trouver une ligne qui est à la fois " foo " et " bar " dans cet ordre, mais pas nécessairement les unes à côté des autres.
J'ai essayé ce qui suit, et ça ne fonctionne pas:
/foo.*bar
- Peut-être que votre problème est la "magie" de réglage. Lire :aider à la "magie" et de :définir la magie? pour voir si c'est ça le problème.
- qu'était-ce... qu'est-ce que la magie?
Vous devez vous connecter pour publier un commentaire.
Utilisation:
La "magie" paramètre détermine combien de VIM traite les caractères spéciaux des expressions régulières. Quand il est éteint VIM traite tous les caractères littéralement, ce qui signifie que l'expression que vous avez écrit
foo.*bar
fera en fait à rechercher la chaîne. Toutefois, lorsque la "magie" est sur spécial regex caractères obtenir leur sens particulier, il fonctionne plus comme prévu. Il est recommandé de toujours utiliser:set magic
à moins de traiter avec de très vieux Vi scripts, il suffit donc de l'ajouter à votre vimrc et vous serez fixés.Fonctionne pour moi:
h: search-pattern
1. Un modèle est une ou plusieurs branches, séparés par des "\|". Il correspond à tout ce qui correspond à une des branches.
Exemple:
foo\|beep
correspond à "foo" et correspond à "bip". Si plus d'une branche matches, le premier est utilisé.2. Une branche est une ou plusieurs concats, séparés par
\&
. Il correspond à la dernière concat, mais seulement si toutes les précédentes concats également correspondre à la même position.Exemples:
foobeep\&...
correspond à "foo" dans "foobeep"..*Peter\&.*Bob
correspond à une ligne contenant à la fois "Pierre" et "Bob"