2009-07-07 11 views
17

Quali sono alcune opzioni per ottenere velocemente la ricerca "Trova nei file" in VIM?Veloce 'Trova nei file' per VIM?

Il nostro codebase è abbastanza grande da consentire alla ricerca di elaborare un indice. grep/vimgrep/etc sono troppo lenti.

L'indicizzazione non deve essere particolarmente veloce; Posso indicizzare durante la notte.

Grazie,

[EDIT] Sto anche lavorando in un ambiente Windows.

risposta

9

Se si tratta di codice sorgente (anziché ricerca testo completo), i ctag con il plug-in TagList dovrebbero funzionare correttamente per le proprie esigenze. Vedi, per esempio:

http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/

EDIT: TagList e ctags lavorerà su Windows così (che è quello che uso). Vedi la pagina di installazione di TagList e le domande frequenti. I seguenti link potrebbero risultare utili:

C'è anche un forum TagList cui è possibile ottenere ulteriore aiuto:

http://tech.groups.yahoo.com/group/taglist/

I configuralo o n la mia macchina Windows qualche tempo fa, ma non ricordo di aver incontrato problemi.

1

Non so come ho trovato questo, ma sembra che qualcuno ha scritto un plugin per google desktop

4

Se si lavora con una grande base di codice, allora potrebbe essere il momento di cercare una soluzione più potente rispetto agli strumenti convenzionali. OpenGrok è un motore di ricerca e di riferimento incrociato molto veloce. Oltre alle sue ottime prestazioni, si integra con Subversion, Mercurial e ClearCase, tra gli altri software di controllo di revisione della sorgente. Sembra molto qualcosa che potresti usare.

Se si desidera che il supporto utilizzi OpenGrok da Vim, è possibile scrivere facilmente una funzione Vim che chiamerebbe system() per avviare la ricerca. Per ulteriori informazioni sulla scrittura di nuovi comandi vim, cercare :help 40.2 all'interno di vim.

Spero che sia quello che stavi cercando.

5

Qualcosa che io uso, ma non attraverso vim, è ack: http://betterthangrep.com/

E 'uno strumento basato Perl, e dovrebbe essere utilizzabile in Windows.

+0

Questo funziona molto bene per me. Abbiamo migliaia di file e un normale grep (o anche ack) può richiedere decine di secondi. Ma qualcosa del tipo ': Ack --ruby * qualcosa *' generalmente tornerà in un secondo o due, poiché cerca solo un sottoinsieme di file –

-1

Si può provare questo

: vimgrep/qualcosa/* /

e non dimenticare finestra dei risultati di ricerca per aprire dopo

: cw

+2

La domanda afferma che vimgrep è troppo lento per lui .... – 0xc0de

0

Prova a i nstall https://github.com/mileszs/ack.vim, http://beyondgrep.com/,

poi fare un collegamento

ln -s /usr/bin/ack-grep /usr/bin/ack 

e aggiungere

noremap <C-f> :copen<CR>:Ack -aQi --ignore-dir someignoringdir 

al vostro .vimrc, dopo si possono trovare nei file attraverso Ctrl + F, godono

_ /| 
\'o.O' 
=(___)= 
    U 
+0

Non so se questo sarà più veloce di builtin grep o vimgrep. – sixtyfootersdude