2009-06-23 7 views
12

Qualcuno conosce la sintassi di Vimgrep per eseguire ricerche con più file glob? Sto cercando di usare questo comando per cercare nella directory corrente.Ricerca tramite set di file designati da più globi con Vimgrep

map <F3> :execute "vimgrep /" . expand("<cword>") . "/j **/*.c* *.txt" <Bar> cw<CR> 

Con l'utilizzo di questo comando, Vim cerca solo per *.c*. Qualche idea su come cercare più tipi di file?

risposta

4

in questa directory

:vimgrep "search subject" *.c 
:vimgrep blah *.[ch] 
:vimgrep blah *.c* *.h 

in questo o in qualsiasi directory discendente

:vimgrep "search subject" ./**/*.c 
+2

Vale la pena notare che non è necessario ./ perché funzioni in modo ricorsivo nella directory corrente. – latortuga

24

per cercare "testo" in tutte le * .txt & * .php file in modo ricorsivo dalla directory corrente.

:vimgrep "text" **/*.txt **/*.php 
+0

Grazie funzionano come fascino. –

+6

Vorrei anche aggiungere che digitando ': cn' e': cp' per andare rispettivamente alle corrispondenze _next_ e _previous_. –

+0

Puoi anche digitare: cl per mostrare l'elenco completo delle partite. – corvec

0

Sono appena entrato in Vim e questa domanda mi ha insegnato l'esistenza di Vimgrep. C'è un modo per scorrere i risultati? Quindi dico Volevo trovare tutte le istanze di "utente", e io uso

:vimgrep /user/g **/*.rb 

Come potrei loop attraverso le istanze di quel testo?

+0

Questi risultati vengono aggiunti alla finestra dell'elenco rapido. È possibile aprire la finestra dell'elenco rapido con ": copen" e può scorrere i risultati –

+0

Questa è una nuova domanda e dovrebbe essere creata come tale ... – khebbie

+1

Umm, khebbie, questo era più di un anno fa? Grazie per il feedback. –