You might want to try netrw+gvim. In the menu for [Netrw]:[Explore] are four searches:
- Filenames matching pattern :Explore */pattern
- Filenames matching pattern, searching subdirectories: :Explore **/pattern
- Files containing search pattern :Explore *//pattern
- Files containing search pattern, searching subdirectories: :Explore **//pattern
(see :help netrw-starstar). Use :Nexplore and :Pexplore (or shift-down, shift-up mouse) to go to the next/previous file on the resulting search list, and use a [return] to enter the file.
For example: * :Explore **//xfile