2016-12-14 3 views
6

Verwenden Sie die Standardsuchfunktion (/) in VIM, gibt es eine Möglichkeit, mit einem Platzhalter (0 oder mehr Zeichen übereinstimmen) zu suchen?So suchen Sie mit Platzhalter in VIM

Beispiel:

Ich habe ein Array, und ich will überall die Array-Indizes finden zugeordnet sind.

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

usw.

Ich bin für etwas entlang der Linien von

/array*= 

suchen, wenn es möglich ist.

Antwort

10

Ich glaube, Sie verstehen nicht, wie die Wildcard funktioniert. Es passt nicht zu 0 oder mehr Zeichen, es entspricht 0 oder mehr des vorhergehenden Atoms, was in diesem Fall y ist. So

Suche
/array*= 

wird einer dieser Punkte entsprechen:

arra= 
array= 
arrayyyyyyyy= 

Wenn Sie 0 entsprechen wollen oder mehrere beliebige Zeichen, verwenden Sie den ‚Punkt‘ Atom, das alle Zeichen übereinstimmen wird als eine neue Zeile .

/array.*= 

Wenn Sie etwas robustere wollen, würde ich empfehlen:

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

die „Array“ von 0 oder mehr Leerzeichen gefolgt ist, gefolgt von irgendetwas in Klammern enthalten, gefolgt von 0 oder mehr Leerzeichen , gefolgt von einem Gleichheitszeichen.