2009-12-14 9 views
19

En vim, realizo búsquedas con vimgrep con frecuencia. Tengo mapeo, como a continuación:¿Cómo excluir los patrones de archivos en vimgrep?

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 yo 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.

+0

No encontré ninguna opción relacionada para vimgrep. Ahora uso grep en su lugar. –

+0

Puede usar grep en lugar de vimgrep. [Aquí] (http://amix.dk/blog/post/175) explica cómo usar con el script llamado MyGrep –

Respuesta

13

Puede 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 de ack-vim en GitHub. Por ejemplo: here y here.

+1

+1: 'ack' es brillante. Gracias por los enlaces 'ack'-'vim'. – Johnsyweb

+0

El segundo repositorio github ya no está disponible. –

2

Por ejemplo, en Ubuntu simplemente

sudo apt-get install ack-grep 

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

seguidamente coloque http://www.vim.org/scripts/script.php?script_id=2572

y ahora añadir la siguiente línea a su .vimrc

noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai 
  • su marco abierto de búsqueda de CTR + F, divertirse
22

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

Por ejemplo, hacer caso omiso de la subcarpeta objd:

:set wildignore+=objd/** 

exclusiones adicionales se pueden agregar mediante la separación de patrones con una coma:

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

documentación de ayuda de Ver Vim para algunos detalles más.

:help wildignore 
Cuestiones relacionadas