web-dev-qa-db-fra.com

Comment faire une recherche de mots entiers similaire à "grep -w" dans Vim

Comment puis-je faire une recherche de mots entiers comme grep -w dans Vim, qui ne renvoie que les lignes où la chaîne recherchée est un mot entier et ne fait pas partie d'un mot plus grand?

grep -w: Sélectionnez uniquement les lignes contenant des correspondances qui forment des mots entiers.

Peut-on le faire à Vim?

46
user1420463
\<bar\>

correspond à bar mais ni foobar ni barbaz ni foobarbaz.

Utilisez-le comme ceci dans une substitution:

:s/\<bar\>/baz

Utilisez-le comme ceci pour lister toutes les lignes contenant le mot entier bar:

:g/\<bar\>

:h pattern est une bonne lecture.

58
romainl

Tu veux /\<yourword\>.

Si votre curseur se trouve sur un mot, vous pouvez appuyer sur * et il fera une recherche Word uniquement pour le mot sous le curseur.

23
Andy Lester

On peut utiliser 'very-magic'\v pour simplifier la commande:

/\v<yourword>

Comme mentionné dans les commentaires, \v indique que tous les caractères alphanumériques ont une signification spéciale, il suffit donc de saisir uniquement < et > plutôt que de leur échapper avec \< et \>.

6
rnso