Как исключить шаблоны файлов в vimgrep?
В vim я часто просматриваю vimgrep. У меня есть отображение, как показано ниже:
map <leader>s :execute "noautocmd vimgrep /\\<" . expand("<cword>") . "\\>/gj **/*.*" <Bar>
cw<CR> 5
Проблема в том, что существуют временные вложенные папки (такие как obj, objd), которые я не хочу искать. Как я могу исключить подпапки, соответствующие заданным шаблонам. Например, в поиске не следует включать вложенные папки с префиксом "objd".
Ответы
Ответ 1
Начиная с Vim 7.3.570, вы можете использовать wildignore для исключения шаблонов с помощью vimgrep.
Например, чтобы игнорировать вложенную папку objd:
:set wildignore+=objd/**
Дополнительные исключения могут быть добавлены путем разделения шаблонов запятой:
:set wildignore+=objd/**,obj/**,*.tmp,test.c
Дополнительную информацию см. в справочной документации Vim.
:help wildignore
Ответ 2
Вы можете попробовать извед вместо этого. Он прекрасно интегрируется с vim и имеет множество опций для того, что вы хотите делать.
На GitHub есть несколько интеграций ack-vim. Например: здесь.
Ответ 3
Например, в 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
- его открытый кадр поиска по Ctr + F, получайте удовольствие