web-dev-qa-db-fra.com

Comment effectuer une recherche à l'aide de caractères génériques dans VIM

En utilisant la fonction de recherche standard (/) dans VIM, existe-t-il un moyen de rechercher à l'aide d'un caractère générique (correspond à 0 ou plusieurs caractères)?

Exemple:

J'ai un tableau et je veux trouver n'importe où les indices du tableau sont attribués.

array[0] = 1;
array[i] = 1;
array[index]=1;

etc.

Je cherche quelque chose dans le sens de

/array*=

si c'est possible.

12
Jimmy P

Je pense que vous ne comprenez pas comment fonctionne le caractère générique. Il ne correspond pas à 0 ou plusieurs caractères, il correspond à 0 ou plus de l'atome précédent, qui dans ce cas est y. Donc recherche

/array*=

correspondra à l'un de ces éléments:

arra=
array=
arrayyyyyyyy=

Si vous souhaitez faire correspondre 0 ou plus à n'importe quel caractère, utilisez l'atome "point", qui correspondra à tout caractère autre qu'une nouvelle ligne.

/array.*=

Si vous voulez quelque chose de plus robuste, je recommanderais:

/array\s*\[[^\]]\+\]\s*=

qui est "tableau" suivi de 0 ou plus d'espaces, suivi de tout ce qui est contenu entre parenthèses, suivi de 0 ou plus d'espaces, suivi d'un signe "égal".

15
DJMcMayhem