2009-07-07 14 views
17

Jakie są możliwości uzyskania bardzo szybko „Znajdź w plikach” szukając w VIM?Szybkie "Znajdź w plikach" dla VIM?

Nasze codebase jest na tyle duża, że ​​szukają musi odpracować indeksu. grep/vimgrep/etc są zbyt wolne.

indeksowania nie musi być szczególnie szybko; Mogę indeksować z dnia na dzień.

Dzięki,

[EDIT] Ja również pracuje w środowisku Windows.

Odpowiedz

9

Jeśli jest to kod źródłowy (raczej niż wyszukiwanie pełnotekstowe), a następnie ctags z wtyczką taglist powinien działać dobrze dla swoich potrzeb. Patrz, na przykład:

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

EDIT: TagList i ctags będzie działać w systemie Windows, jak również (to co używam). Zobacz stronę instalacji TagList i często zadawane pytania. Poniższe linki mogą okazać się przydatne:

Jest też forum TagList gdzie można uzyskać dalszą pomoc:

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

I ustaw go n mój Windows maszyna jakiś czas temu, ale nie pamiętam żadnych problemów.

1

Nie wiem, jak znalazłem to, ale wygląda na to, że ktoś napisał wtyczki dla google desktop

4

Jeśli pracujesz z dużą kodzie, to może to być czas, aby spojrzeć na bardziej wydajnego rozwiązania niż konwencjonalne narzędzia. OpenGrok to bardzo szybkie wyszukiwanie kodu źródłowego i silnik referencyjny. Na szczycie jego doskonałej wydajności, integruje się z Subversion, Mercurial i ClearCase, między innymi oprogramowania sterującego rewizja źródło. Brzmi bardzo podobnie do czegoś, co można wykorzystać.

Jeśli chcesz korzystać z OpenGrok z poziomu Vima, możesz łatwo napisać funkcję vim, która wywoła system(), aby rozpocząć wyszukiwanie. Aby przeczytać więcej o pisaniu nowych poleceń vim, spójrz na :help 40.2 w vim.

Mam nadzieję, że to, czego szukali.

5

Coś, co używam, ale nie poprzez vim, to ACK: http://betterthangrep.com/

Jest to narzędzie oparte Perl i powinno być używane w systemie Windows.

+0

Działa to bardzo dobrze dla mnie. Mamy tysiące plików, a normalny grep (lub nawet ack) może zająć kilkadziesiąt sekund. Ale coś takiego jak ': Ack --ruby * something *' zwykle zwróci w ciągu sekundy lub dwóch, ponieważ szuka tylko podzbioru plików –

-1

Można spróbować to

: vimgrep/coś/* /

i nie zapomnij, aby otworzyć okno wyników wyszukiwania po

: CW

+2

Pytanie stwierdziło, że vimgrep jest dla niego za wolny ... – 0xc0de

0

Spróbuj i nstall https://github.com/mileszs/ack.vim, http://beyondgrep.com/,

następnie zrobić link

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

i dodać

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

do .vimrc, po można znaleźć w plikach poprzez Ctrl + F, cieszyć

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

Nie jestem pewien czy będzie to szybsze niż wbudowane grep lub vimgrep. – sixtyfootersdude