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 grepdesde dentro vim, se puede también utilizar vim's herramienta integrada. Esto se invoca a través del :vimgrepcomando.
Para buscar "todos los archivos fuente de C en el directorio actual para llamadas a la función toUpperCase()" uno escribe el vimcomando
: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, ctagses la herramienta, como se menciona en Gillesla respuesta de , junto con los comandos :tjumpo :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 :vimgrepcon dietbuddhala respuesta de . dietbuddhaLa línea de comando de la horquilla bifurca un grepproceso individual para cada archivo fuente C individual. Ni siquiera se emplea xargspara 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. :vimgrepno 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.