2012-09-21 12 views

Respuesta

23

No, no necesita necesita cualquier complemento. El valor predeterminado :vimgrep (o :vim) es todo lo que necesita.

Buscar foo en todos los archivos en el directorio actual:

:vim foo * | cw 

Buscar foo en todos los archivos JavaScript en el directorio actual:

:vim foo *.js | cw 

Buscar foo en todos los archivos de JavaScript en el directorio actual recursivamente:

:vim foo **/*.js | cw 

Búsqueda de la palabra actual en todos los archivos en el directorio actual:

:vim <C-r><C-w> * | cw 
:vim <cword> * | cw 

(Editar: :cw[indow] en lugar de :copen)

+0

se ve bien, pero hay una manera de abrir un archivo con una de encontrado resultados sin enfocar su buffer? –

+0

Por supuesto. Ver ': h quickfix'. Por ejemplo ': cc5' para saltar al error número 5,': cn' para saltar al siguiente error, ': cN' o': cp' para saltar al error anterior ... – romainl

+0

¡Lo tengo, gracias! –

9

Suena como que necesita ack.vim:

Este plugin es un frente para el módulo Perl App :: Ack. Ack puede usarse como un reemplazo para el 99% de los usos de grep. Este complemento le permitirá ejecutar ack desde vim y muestra los resultados en una ventana dividida.

Uso:

:Ack [options] {pattern} [{directory}] 
Search recursively in {directory} (which defaults to the current directory) for the {pattern}. 

archivos que contienen el término de búsqueda se mostrarán en la ventana dividida, junto con el número de línea de la ocurrencia, una vez por cada ocurrencia. [Intro] en una línea en esta ventana abrirá el archivo y colocará el cursor en la línea correspondiente.

5

Los delegados :grep comando de Vim el de búsqueda de la herramienta externa grep (o una alternativa compatible como ack, establecido a través de 'grepprg'). Alternativamente, puede usar :vimgrep, que realiza la búsqueda dentro de Vim. Esto permite usar las mismas expresiones regulares de estilo Vim y patrones glob (como **/), pero generalmente es más lento porque cada archivo se lee en un buffer Vim.

Ambos comandos muestran los resultados en la ventana de revisión, desde la cual puede navegar a las coincidencias.

No necesita ningún complemento para esto, aunque hay varios disponibles que intentan simplificar el manejo o admiten diferentes comandos de búsqueda (por ejemplo, el ya mencionado ack.vim).

Cuestiones relacionadas