Как исключить шаблоны файлов в vimgrep?

В vim я часто просматриваю vimgrep. У меня есть отображение, как показано ниже:

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

Проблема в том, что существуют временные вложенные папки (такие как obj, objd), которые я не хочу искать. Как я могу исключить подпапки, соответствующие заданным шаблонам. Например, в поиске не следует включать вложенные папки с префиксом "objd".

3 ответа

Начиная с Vim 7.3.570, вы можете использовать wildignore для исключения шаблонов с помощью vimgrep.

Например, чтобы игнорировать вложенную папку objd:

:set wildignore+=objd/**

Дополнительные исключения могут быть добавлены путем разделения шаблонов запятой:

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

Дополнительную информацию см. в справочной документации Vim.

:help wildignore


Вместо этого вы можете попробовать ack. Он прекрасно сочетается с vim и имеет множество возможностей для выполнения того, что вы хотите сделать.

В GitHub есть несколько интеграций ack-vim. Например: здесь и здесь.


Например, в Ubuntu просто

sudo apt-get install ack-grep
sudo ln -s /usr/bin/ack-grep /usr/bin/ack

затем установите http://www.vim.org/scripts/script.php?script_id=2572

и теперь добавьте следующую строку в ваш .vimrc

noremap <c-f> :copen<cr>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai 
</cr></c-f>
  • его открытый кадр поиска по Ctr + F, получайте удовольствие

licensed under cc by-sa 3.0 with attribution.