If you used Acme as your editor, Iād believe you (Acme lets you do some seriously insanely cool things with external tools like grep and friends). But you instead use vim. Meaning that you, as the human, need to do much of the work that the machine should be doing for you.
Iāll give you that find seems to run quicker than I imagined, so letās call it a wash there.
Now letās say Iām grepping through my entire code base for a function called āsendMessage()ā. Using my editorās index, it maybe took me 3 seconds. Letās see what grep does:
$ time grep -R 'sendMessage(' .
...
real 0m16.341s
--- ---
user 0m0.159s
sys 0m0.181s
So about 5 times longer.
Heck, even old-school vim users often use tools like cscope to perform indexes of code bases once they get beyond a certain size. At a previous job, we actually had cscope indexes regenerated as part of every nightly build to make things easier for our coders.
Oh, and Iāll need to manually call up the file in my editor if I use grep, whereas I can just go directly to it by hitting return using my IDEās index.
And letās not get into even more sophisticated searches that a proper code index, either built-in to the IDE or external, lets you do, like find every function that calls a particular function. Or how about searches that take a functionās argument types (admittedly not as useful if using a duck typing language like Python) into account? What if you want to rename a specific method of a specific class across your code base as part of doing some large-scale refactoring. Two mouse clicks or two keystrokes in my IDE and it searches the index, shows the list of changes that need to be made, and itās done if I approve of the changes. I suppose you would whip up something using awk and/or sed in the terminal to accomplish the same goal, but it wouldnāt give you a preview and would probably be a fair bit clunkier.
Getting outside the benefits of having some sort of index, how about running a static code checker, like clang-tidy, to inspect your code for syntax errors or potential security vulnerabilities and have the results appear inline with your source right in your editor? Stock vim canāt do that without a third party-plugin. My editor ships with support for clang-tidy (and even clang-tidy itself) right out of the box.
That isnāt to say I donāt also use the terminal where appropriate alongside my IDE. Different tools for different purposes and each with their own strengths. If I need to do a plain text search, Iāll often use grep because itās faster for searching for generic strings than an indexed code symbol.
Now, I get that some people think that IDEs are too heavyweight, and I respect that. You can still use a modern editor with a modern UI (like Visual Studio Code) alongside a terminal and get all the features you talk about with using find and grep without having a user interface designed for a 1970ās era dumb terminal over a 300 bps dialup modem link.
Your insistence that vim combined with the terminal as the end-all, be-all frankly looks to be a case of āif all you have is a hammerā mentality.