junegunn and search vim findinfiles

search - and - Vim: Ignorar ruta especial en la búsqueda



vim find next (5)


En mi archivo .vimrc, tengo dos líneas muy útiles:

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

La primera línea me permite buscar en el directorio y subdirectorios de mi proyecto. La segunda línea hace que vim cree archivos de copia de seguridad en una carpeta temporal especial, en lugar de molestarme agregando decenas de archivos de copia de seguridad que tengan el mismo nombre, excepto 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 serán buscados cuando haga una búsqueda, lo que a veces me molesta. , porque sigo mirando los resultados buscados, sin embargo, para descubrir que realmente están en la carpeta temporal.

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

Saludos,
Rafid


En lugar de vimgrep uso el comando grep

:help grep

Yo uso el ajuste

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

cuando quiero buscar archivos pero excluyendo los archivos de etiquetas y los archivos cscope. Puede modificar lo anterior para no buscar ningún archivo que termine con un ~. No creo que puedas excluir la carpeta usando grep (o quizás puedas, prueba --exclude = ~ / nbapp / temp / * podría funcionar, no la he probado).

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


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

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


Por ejemplo en Ubuntu solo

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

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

y ahora agregue 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 de búsqueda abierto por Ctr + F, diviértete.

Utilice la opción ''wildignore'':

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

O si quieres ser más específico:

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

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


set path-=~/nbapp/temp

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