2012-09-21 14 views

risposta

23

No, non è necessario qualsiasi plug-in. Il valore predefinito :vimgrep (o :vim) è tutto ciò che è necessario.

Cerca foo in ogni file nella directory corrente:

:vim foo * | cw 

Cerca foo in ogni file JavaScript nella directory corrente:

:vim foo *.js | cw 

Cerca foo in ogni file JavaScript nella directory corrente in modo ricorsivo:

:vim foo **/*.js | cw 

Cercare la parola corrente in ogni file nella directory corrente:

:vim <C-r><C-w> * | cw 
:vim <cword> * | cw 

(edit: uso :cw[indow] invece di :copen)

+0

sembra bello, ma c'è un modo per aprire un file con uno dei trovati risultati senza concentrare il suo buffer? –

+0

Naturalmente. Vedi ': h quickfix'. Ad esempio ': cc5' per passare all'errore numero 5,': cn' per passare all'errore successivo, ': cN' o': cp' per passare all'errore precedente ... – romainl

+0

Capito, grazie! –

9

Suona come è necessario ack.vim:

Questo plugin è un fronte per il modulo Perl :: App Ack. Ack può essere utilizzato come sostituto del 99% degli usi di grep. Questo plugin ti consentirà di eseguire ack da vim e mostrerà i risultati in una finestra divisa.

Usage:

:Ack [options] {pattern} [{directory}] 
Search recursively in {directory} (which defaults to the current directory) for the {pattern}. 

file contenenti il ​​termine di ricerca saranno elencati nella finestra divisa, insieme con il numero di riga del verificarsi, una volta per ogni occorrenza. [Invio] su una riga in questa finestra aprirà il file e posizionerà il cursore sulla linea corrispondente.

5

I :grep delegati comando Vim la ricerca al grep strumento esterno (o un'alternativa compatibile come ack, impostato tramite 'grepprg'). In alternativa, è possibile utilizzare :vimgrep, che esegue la ricerca all'interno di Vim. Ciò consente di utilizzare le stesse espressioni regolari di stile Vim e modelli glob (come **/), ma di solito è più lento perché ogni file viene letto in un buffer Vim.

Entrambi i comandi visualizzano i risultati nella finestra di aggiornamento rapido, da cui è possibile accedere alle corrispondenze.

Per questo non sono necessari plug-in, sebbene siano disponibili diversi che tentano di semplificare la gestione o supportano diversi comandi di ricerca (ad esempio il già citato ack.vim).

Problemi correlati