Estás usando vim. Tienes una herramienta para hacer esto incorporada.
Como era de esperar, hay siete respuestas que ya dicen usar grep
. Pero parece ser la única persona hasta ahora que se ha dado cuenta de su pregunta que está utilizando vim
. Como tal, aunque se puede utilizar grep
desde dentro vim
, se puede también utilizar vim
's herramienta integrada. Esto se invoca a través del :vimgrep
comando.
Para buscar "todos los archivos fuente de C en el directorio actual para llamadas a la función toUpperCase()
" uno escribe el vim
comando
:vimgrep "\<toUpperCase\_s*(" *.c
La lista de coincidencias resultante se carga automáticamente en la lista de soluciones rápidas, a la que se puede acceder con cualquiera de los dos (consulte la ayuda en línea para ver la sutil diferencia)
:copen
:cwin
Para encontrar la definición de la función , en lugar de las llamadas, ctags
es la herramienta, como se menciona en Gilles
la respuesta de , junto con los comandos :tjump
o :tselect
.
¿Por qué usar :vimgrep
?
La ayuda en línea ( :help grep
) enumera varias de las razones, que no mencionaré aquí. Además de eso, compare la acción de :vimgrep
con dietbuddha
la respuesta de . dietbuddha
La línea de comando de la horquilla bifurca un grep
proceso individual para cada archivo fuente C individual. Ni siquiera se emplea xargs
para reducir esa sobrecarga. Y aún tiene que analizar de alguna manera el resultado para invocar su editor de texto en los archivos fuente relevantes una vez que haya terminado. :vimgrep
no bifurca múltiples procesos adicionales en absoluto, y usar el resultado es la simplicidad misma. Simplemente seleccionando una de las entradas en la lista de soluciones rápidas resultante, se posiciona automáticamente el cursor en la línea relevante del archivo fuente relevante.
De hecho, hace exactamente lo que escribiste que harías a mano, excepto automáticamente. Es la forma automatizada de hacer esas mismas acciones del editor de texto. Carga el archivo como si se cargara a mano, busca una expresión regular (usando la misma sintaxis de expresión regular que ya está usando en otra parte vim
), registra los lugares donde ocurren las coincidencias y luego descarga el archivo.