2010-11-28 7 views
15


En mi archivo .vimrc, tengo dos líneas muy útiles:Vim: Ignorar camino especial en Buscar

set path=~/nbapp/** 
set backupdir=~/nbapp/temp 

La primera línea me permite buscar en mi directorio y subdirectorios proyecto. La segunda línea hace que vim cree archivos de respaldo en una carpeta temporal especial, en lugar de molestarme al agregar decenas de archivos de respaldo que tienen exactamente el mismo nombre, excepto por un '~' al final. Sin embargo, dado que los archivos temporales todavía están dentro de la carpeta 'nbapp' (y quiero mantenerlos allí porque están relacionados con el proyecto), significa que también se buscarán cuando haga una búsqueda, lo que a veces me molesta. , porque sigo mirando los resultados buscados, pero descubro que están realmente en la carpeta temporal.

¿Hay alguna manera posible de excluir las rutas de la búsqueda (es decir, vimgrep)? Quiero excluir la carpeta 'temp'.

Saludos,
Rafid

Respuesta

-1
set path-=~/nbapp/temp 

es el método preferido para quitar las entradas de ruta, ya que le protege contra las actualizaciones de vim que pueden modificar el valor de 'camino'.

+2

¡Eso no parece funcionar! Todavía me muestra los archivos de copia de seguridad. – Rafid

4

En lugar de vimgrep utilizo el comando grep

:help grep 

utilizo el ajuste

set grepprg=grep\ -nIh\ --exclude=tags\ --exclude=cscope.out 

cuando quiero buscar archivos, pero excluyendo los archivos de etiquetas y archivos cscope. Puede modificar lo anterior para no buscar archivos que terminen con ~. No creo que pueda excluir la carpeta usando grep (o tal vez pueda, intente --excluir = ~/nbapp/temp/* podría funcionar, no lo he probado).

Si eso no funciona, lo recomiendo usando ack para grepprg en lugar de grep. ack como una opción ignore-dir = nombre en el que puede ignorar explícitamente una carpeta.

+0

Las versiones recientes de grep también tienen '--ignore-dir', que podría ser justo lo que está buscando. – Magnus

+1

Para no romper la ventana de quickfix sería mejor 'set grepprg = grep \ -n \ --exclude = tags \ --exclude = cscope.out \ $ * \/dev/null' –

17

usar la opción 'wildignore':

:set wildignore+=**/temp/**

o si desea ser más específico:

:set wildignore+=~/nbapp/temp/**

Esto debería exlude todos los archivos en el directorio nbapp/temp en: encontrar resultado.

+3

¡Esto no funciona! – Rafid

+0

Estaba buscando exactamente esto, por ignorar las carpetas de compilación en: buscar búsquedas. ¡Gracias! –

+0

wildignore Parece que no funciona para vimgrep –

0

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 archivo.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
1

excluir algunos directorios de :find y gf (por ejemplo node_modules) puede establecer:

:set path=** 
:set wildignore+=*/node_modules/* 
Cuestiones relacionadas