I am thinking methods to make the search faster and/or better which principally uses fgrep or ag. Code which searches the word and case-insensitively at $HOME, and redirects a list of matches to vimfind -L $HOME -xtype f -name *.tex \   -exec fgrep -l -i and {} + 2>/dev/null | vim -R -It is faster with ag because of parallelism and ackfind -L $HOME -xtype f -name *.tex \   -exec ag -l -i and {} + 2>/dev/null | vim -R -StatisticsSmall group average statistics with fgrep and ag by time        fgrep   ag     terdon1  terdon2  terdon3  muru user    0.41s   0.32s  0.14s    0.22s    0.18s    0.12ssys     0.46s   0.44s  0.26s    0.28s    0.30s    0.32sCases terdon1 and terdon3 can be equal fast. I get great fluctuations with those two. Some Ranking by sys time (not best criteria!)terdon1terdon2terdon3muruagfgrepAbbreviationsterdon1 = terdon-many-find-grep terdon2 = terdon-many-find-fgrepterdon3 = terdon-many-find-ag (without F because not exists in ag)Other codesmuru's proposal in commentsgrep -RFli and $HOME --include=*.tex | vim -R -OS: Debian 8.5Hardware: Asus Zenbook UX303UA    
How to make this search faster in fgrep/Ag?
grep;time;parallelism;ag
You could probably make it a little bit faster by running multiple find calls in parallel. For example, first get all toplevel directories and run N find calls, one for each dir. If you run the in a subshell, you can collect the output and pass it to vim or anything else:shopt -s dotglob ## So the glob also finds hidden dirs( for dir in $HOME/*/; do     find -L $dir -xtype f -name *.tex -exec grep -Fli and {} + &   done) | vim -R -Or, to be sure you only start getting output once all the finds have finished:( for dir in $HOME/*/; do     find -L $dir -xtype f -name *.tex -exec grep -Fli and {} + &   done; wait) | vim -R -I ran a few tests and the speed for the above was indeed slightly faster than the single find. On average, over 10 runs, the single find call tool 0.898 seconds and the subshell above running one find per dir took 0.628 seconds.I assume the details will always depend on how many directories you have in $HOME, how many of them could contain .tex files and how many might match, so your mileage may vary.