If your "million lines of code" project isn't well documented or designed, then relying on an IDE to find pieces of code doesn't really help.
It is also my "conspiracy theory" that because IDEs are so good at hiding the junk under the carpet, developers become sloppy and stop carrying about things like modularization and API design, immersing themselves into sloppy code and factories of factories. E.g. no project should ever get to millions of lines of code, because no developer is able to keep it in one's head, which is why monolithic code bases are a mess. If you're not splitting your project in multiple modules/libraries, you're doing it wrong.
And such users can't see it, because they are developing in languages in which IDE usage was encouraged from the start (e.g. C#, Java), so libraries are naturally developed with IDEs in mind, being really hard and frustrating to use them without an IDE, creating a vicious circle. It is also my opinion that IDE "users" (because seriously folks, many of you are not the kind of people that can adapt their environment to their needs, therefore you are just users) have never tried to develop in Vim or Emacs in combination with a potent REPL, plus the Unix toolchain. Unfortunately for you particularly, you'd also have to change languages and immerse yourself in the Unix culture for that to be a pleasant experience. But seriously, try it sometimes, you might just like it.
Note that I'm currently using IntelliJ IDEA, from the same guys that are delivering ReSharper, the plugin that makes Visual Studio usable. IntelliJ IDEA is a really potent IDE. But many times I hate it and I can't wait to get back full-time on Emacs, unfortunately I have to use IntelliJ because I'm dealing with Java's ecosystem right now. Well, at least Java has Maven and SBT.
And yes, I used Emacs for 8 years. You couldn't pay me enough to go back.
I've personally moved to Vim because I found that I like it, but I still have all the plugins that turn it right back into an IDE of sorts. I try to resist looking down on IDE users... I used IDEs for a long time and suffered no ill effects (that I know of).
> You're right; IDEs encourage lazy programming habits.
Nonsense. You know what's lazy? Working on a project with millions of lines of code and deciding that digging through it to find the routine you need is more work than just coding it again.
My conspiracy theory is that editors that allow you to enter code real fast encourage a personal not-invented-here syndrome. Coding it yourself is faster than looking up how to use someone else's code (be it code by a team member or an open-source library). If the only way to use a lib is to read bad reference docs on the internet, or, god forbid, the source, and you're on vim/emacs/sublime, then sure, hack it together yourself. It's faster, more fun, and all the trouble caused by code duplication and added complexity is for your successors anyway. Not your problem! This why all PHP, Ruby and Python programmers build their own HTTP request router at some point in their career (I sure did).
On the other side, editors that make it very easy for you to discover and navigate code will encourage you to use existing code. Typing `someObject.` and getting a precise, documented and navigable list of exactly what you can do with that object. That causes you to use that object the way it was intended. Maybe refactor one of its methods so that it's more flexible or general. You wouldn't refactor a method that you don't know existed, right? Direct, at-your-fingertips insight in the code you use, and the code you wrote last month, encourages appropriate use of said code.
(Sidenote: of course there's absolutely no reason why an IDE can't have great text-editing keybindings. I suspect that the only reason most fakevim plugins for IDEs are mediocre is because the user group is so small. After all, the average vim/emacs user looks down on IDEs)