2012-09-21 14 views

Odpowiedz

23

Nie, nie musisz potrzebujesz jakiejkolwiek wtyczki. Domyślnie :vimgrep (lub :vim) to wszystko, czego potrzebujesz: need.

Szukaj foo w każdym pliku w bieżącym katalogu:

:vim foo * | cw 

Szukaj foo w każdym pliku JavaScript w bieżącym katalogu:

:vim foo *.js | cw 

Search dla foo w każdym pliku JavaScript na bieżący katalog rekursywnie:

:vim foo **/*.js | cw 

Szukaj bieżącego słowa w każdym pliku w bieżącym katalogu:

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

(edit: używać :cw[indow] zamiast :copen)

+0

Wygląda ładnie, ale czy jest jakiś sposób, aby otworzyć plik z jednego znaleziono wyniki bez skupiania się na buforze? –

+0

Oczywiście. Zobacz ': h quickfix'. Na przykład ': cc5', aby przejść do błędu numer 5,': cn', aby przejść do następnego błędu, ': cN' lub': cp', aby przejść do poprzedniego błędu ... – romainl

+0

Mam to, dziękuję! –

9

Brzmi jak trzeba ack.vim:

Wtyczka ta jest przykrywką dla modułu Perl App :: ACK. Ack może być użyty jako zamiennik 99% zastosowań grep. Ta wtyczka pozwoli ci uruchomić ack z vim i pokazuje wyniki w podzielonym oknie.

Zastosowanie:

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

Pliki zawierające termin wyszukiwania zostaną wyświetlone w oknie podzielonym, wraz z numerem linii wystąpienia, raz dla każdego wystąpienia. [Enter] na linii w tym oknie otworzy plik i umieści kursor na pasującej linii.

5

W :grep Vim delegaci polecenie przeszukania do zewnętrznego grep narzędzia (lub kompatybilnego alternatywy jak ack ustawić poprzez 'grepprg'). Alternatywnie możesz użyć :vimgrep, która wykonuje wyszukiwanie w Vimie. Pozwala to na używanie tych samych wyrażeń regularnych w stylu Vima i wzorców globalnych (takich jak **/), ale zwykle jest wolniejsze, ponieważ każdy plik jest odczytywany do bufora Vima.

Obie komendy wyświetlają wyniki w oknie quickfix, z którego można nawigować do dopasowań.

Nie potrzebujesz do tego żadnych wtyczek, ale jest kilka dostępnych, które starają się uprościć obsługę lub obsługiwać różne polecenia wyszukiwania (np. Wspomniany już ack.vim).

Powiązane problemy