Stai usando Vim. Hai uno strumento per farlo incorporato.
Com'era prevedibile, ci sono già sette risposte che dicono di usare grep. Ma mi sembra di essere l'unica persona finora che ha notato dalla tua domanda che stai usando vim. Pertanto, sebbene sia possibile utilizzarlo grepdall'interno vim, è anche possibile utilizzare lo vimstrumento integrato. Questo viene invocato tramite il :vimgrepcomando.
Per cercare "tutti i file sorgente C nella directory corrente per le chiamate alla funzione toUpperCase()" si digita il vimcomando
:vimgrep "\<toUpperCase\_s*(" *.c
L'elenco di corrispondenze risultante viene automaticamente caricato nell'elenco di correzioni rapide, accessibile con uno dei due (consultare la guida in linea per la sottile differenza)
:copen
:cwin
Trovare la definizione della funzione , piuttosto che chiamarla, ctagsè lo strumento, come menzionato nella Gillesrisposta , in combinazione con i comandi :tjumpo :tselect.
Perché l'uso :vimgrep?
L'help on-line ( :help grep) enumera molte delle ragioni, che non pappagallo qui. Oltre a quelli, confronta l'azione di :vimgrepcon quella della dietbuddharisposta . dietbuddhaLa riga di comando genera un singolo grepprocesso per ogni singolo file sorgente C. Non ha nemmeno bisogno xargsdi ridurre questo sovraccarico. E devi ancora in qualche modo analizzare l'output per invocare il tuo editor di testo sui file sorgente pertinenti una volta che è finito. :vimgrepnon interrompe più processi aggiuntivi e l'utilizzo del risultato è la semplicità stessa. Selezionando semplicemente una delle voci nell'elenco risultante della correzione rapida si posiziona automaticamente il cursore sulla riga pertinente del file sorgente pertinente.
In effetti, fa esattamente quello che hai scritto che faresti a mano, tranne automaticamente. È il modo automatizzato di eseguire quelle azioni dell'editor di testo. Carica il file come se fosse caricato a mano, cerca un'espressione regolare (utilizzando la stessa sintassi di espressioni regolari che stai già utilizzando altrove vim), registra i luoghi in cui si verificano le corrispondenze e quindi scarica il file.