2016-07-15 157 views
9

Ci sono un paio di cose che ancora non capisco in modo VIM.Come posso cercare in tutti i file del mio progetto usando VIM?

Uno di questi è alla ricerca di un progetto in questo modo (usando VIM in Atom):

enter image description here

Io uso CtrlP attualmente per i nomi dei file, ma per quanto riguarda i contenuti?

Come è possibile eseguire una ricerca con una stringa e quindi cercare un elenco di tutte le occorrenze utilizzando i plug-in VIM e/o VIM?

+2

Installare [ACK] (http://beyondgrep.com/) e/o [ag] (http://geoff.greer.fm/ag/), e utilizzare il [CtrlSF] (https://github.com/dyng/ctrlsf.vim) plugin. Non guarderai indietro. –

risposta

12

ho trovato una soluzione ancora migliore per questo: FZF

Si cerca semplicemente attraverso tutto ciò nel progetto in modo asincrono utilizzando il comando :Ag.

enter image description here

+0

Nota: questo richiede che silver_searcher sia installato pure https://github.com/ggreer/the_silver_searcher –

6

Utilizzare :grep o :vimgrep per cercare i contenuti del file. I risultati vengono inseriti nella "lista posizione" che è possibile aprire digitando :cwImmettere.

Sintassi per :grep è, per impostazione predefinita, lo stesso che il comando grep(1):

:grep 'my pattern.*' /path/to/dir 

Di default cercherà la directory corrente (:pwd).

La principale differenza tra :grep e :vimgrep è che :vimgrep (:vim in breve) utilizza espressioni regolari Vim-compatibile, mentre :grep utilizza qualsiasi espressioni regolari tuoi &grepprg usi.

È possibile utilizzare un programma personalizzato impostando &grepprg su qualcosa di diverso. Personalmente mi piace lo ack che usa espressioni regolari Perl compatibili.

+0

Sì, e che dire dell'elenco di occorrenze? – Sem

+0

@Sem Ho ampliato la mia risposta per essere il più completo possibile senza addentrarmi troppo in profondità. – amphetamachine

+0

Grazie, ci sto provando proprio ora :) – Sem