Anda menggunakan vim. Anda punya alat untuk melakukan ini.
Bisa ditebak, ada tujuh jawaban yang sudah mengatakan untuk digunakan grep. Tetapi saya tampaknya menjadi satu-satunya orang yang sejauh ini telah memperhatikan dari pertanyaan Anda yang Anda gunakan vim. Dengan demikian, meskipun Anda dapat menggunakan grepdari dalam vim, Anda juga dapat menggunakan vimalat bawaan. Ini dipanggil melalui :vimgrepperintah.
Untuk mencari "semua file sumber C di direktori saat ini untuk panggilan ke fungsi toUpperCase()" satu ketik vimperintah
:vimgrep "\<toUpperCase\_s*(" *.c
Daftar kecocokan yang dihasilkan secara otomatis dimuat ke dalam daftar perbaikan cepat, dapat diakses dengan salah satu dari (lihat bantuan on-line untuk perbedaan halus)
:copen
:cwin
Untuk menemukan definisi fungsi , bukan panggilan ke sana, ctagsadalah alat, seperti yang disebutkan dalam Gillesjawaban , dalam hubungannya dengan perintah :tjumpatau :tselect.
Mengapa menggunakan :vimgrep?
Bantuan online ( :help grep) menyebutkan beberapa alasan, yang saya tidak akan nuri di sini. Lebih jauh dari itu, bandingkan tindakan :vimgrepdengan dietbuddhajawaban . dietbuddhaBaris perintah memotong grepproses individu untuk setiap file sumber C individu. Bahkan tidak digunakan xargsuntuk mengurangi overhead itu. Dan Anda masih harus mem-parsing output untuk memanggil editor teks Anda pada file sumber yang relevan setelah selesai. :vimgreptidak memotong beberapa proses tambahan sama sekali, dan menggunakan hasilnya adalah kesederhanaan itu sendiri. Hanya memilih salah satu entri dalam daftar perbaikan cepat yang dihasilkan secara otomatis menempatkan kursor pada baris yang relevan dari file sumber yang relevan.
Bahkan, ia melakukan persis apa yang Anda tuliskan dengan tangan, kecuali secara otomatis. Ini adalah cara otomatis untuk melakukan tindakan editor teks tersebut. Ini memuat file seolah-olah dimuat dengan tangan, mencarinya untuk ekspresi reguler (menggunakan sintaks ekspresi reguler yang sama yang sudah Anda gunakan di tempat lain vim), mencatat tempat-tempat yang cocok, dan kemudian membongkar file.