plug best vim design-patterns vimgrep

best - ¿Cómo excluir patrones de archivos en vimgrep?



vim packages (3)

En vim, busco con vimgrep con frecuencia. Tengo un mapeo como a continuación:

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

El problema es que hay algunas subcarpetas temporales (como obj, objd) que no quiero buscar. ¿Cómo puedo excluir subcarpetas que coincidan con determinados patrones? Por ejemplo, las subcarpetas con el prefijo "objd" no deberían incluirse en la búsqueda.


Podrías probar ack en su lugar. Se integra muy bien con vim y tiene muchas opciones para hacer el tipo de cosas que desea hacer.

Hay varias integraciones ack-vim en GitHub. Por ejemplo: aquí y aquí .


Por ejemplo en Ubuntu solo

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

luego instala http://www.vim.org/scripts/script.php?script_id=2572

y ahora agrega la siguiente línea a tu .vimrc

noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai

  • su cuadro de búsqueda abierto por Ctr + F, diviértete

A partir de Vim 7.3.570, puede usar wildignore para excluir patrones con vimgrep.

Por ejemplo, para ignorar la subcarpeta objd:

:set wildignore+=objd/**

Se pueden agregar exclusiones adicionales separando patrones con una coma:

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

Consulte la documentación de ayuda de Vim para obtener más información.

:help wildignore