2009-12-14 9 views
19

W vimie często wyszukuję w vimgrep. Mam mapowania jak poniżej:Jak wykluczyć wzorce plików w vimgrep?

map <leader>s :execute "noautocmd vimgrep /\\<" . expand("<cword>") . "\\>/gj **/*.*" <Bar> 
cw<CR> 5 

Problem polega na tym, że istnieją pewne tymczasowe podfoldery (jak obj, objd), że nie chce szukać. Jak mogę wykluczyć podfoldery pasujące do podanych wzorów. Na przykład podfoldery z przedrostkiem "objd" nie powinny być uwzględniane w wyszukiwaniu.

+0

Nie znalazłem żadnych powiązanych opcji dla vimgrep. Teraz używam grep. –

+0

Możesz użyć grep zamiast vimgrep. [Tutaj] (http://amix.dk/blog/post/175) wyjaśnij, jak używać skryptu o nazwie MyGrep –

Odpowiedz

13

Zamiast tego możesz wypróbować ack. Świetnie integruje się z vimem i ma wiele opcji do robienia rzeczy, które chcesz robić.

Istnieje kilka integracji ack-vim na GitHub. Na przykład: here i here.

+1

+1: "ack" jest genialne. Dziękujemy za linki "ack" - "vim". – Johnsyweb

+0

Drugie repozytorium github nie jest już dostępne. –

2

Na przykład w Ubuntu tylko

sudo apt-get install ack-grep 

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

następnie zainstalować http://www.vim.org/scripts/script.php?script_id=2572

i teraz dodać kolejną linię do .vimrc

noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai 
  • jego otwartej klatce CTR + F, dobrze się bawić
22

Od wersji Vim 7.3.570 można używać wildignore do wykluczania wzorów za pomocą vimgrep.

Na przykład, aby ignorować objd podfolder:

:set wildignore+=objd/** 

Dodatkowe Wyłączenia mogą być dodawane przez oddzielenie wzory przecinkami:

:set wildignore+=objd/**,obj/**,*.tmp,test.c 

dokumentacja Zobacz vim za kilka szczegółów.

:help wildignore 
Powiązane problemy