Not thinking about how code looks (especially to other people) since I could just resize the window to whatever.
A lot of the build complexities were hidden, which was fine as long as everything worked, but, as soon as something small broke, I spent days reading documentation and uselessly searching MSDN and the web trying to get the project to build (so, not understanding my build environment is something else I had to fix).
There are lots more (source control, collaboration, etc). I know that switching my tools and my development environment made me a better programmer.
"Not thinking about how the code looks"--personal and cultural problem, not that of the tools; whether I'm in Vim or Coda or VS2010, I run a guideline at 100 characters (because 80 character lines is dumb in the age of the smallest dev monitor being 1280 pixels wide) and wrap to it. Never heard a complaint from anyone I work with.
Build complexity--here, you have something of a point, but MSBuild or Maven or whatever isn't appreciably different than tooling with makefiles (except that MSBuild probably has better documentation and there's some semblance of a standard way to do things).
Source control? I use Hg and Git, seamlessly, from within VS2010 or Eclipse. Not a problem at all. Collaboration? I've used VSTS for it before, but I just hang a Chrome window in my second monitor and keep Redmine (at home--Bugzilla, at work) and an IRC channel open. None of this is appreciably easier in the Land of the Holy Terminal--it's just different.
I've used both heavily IDE-driven stuff and the stone knives and bearskins that vi-land suggests, and my practices do not fundamental change from one to the other--because I understand what I am doing and how and why to do it. Changing your environment doesn't help you become a better programmer unless you understand why you did what you did and have developed the discipline to not do it regardless of tooling. Your problem existed between keyboard and chair, and it doesn't sound like you've fixed it--just hid it away.
I have coworkers who use Eclipse (for Java). It's a CPU hog; often it locks up entirely, crashes are infrequent but, happen. I've tried it; I know I'm much faster with vim. For me, my time is worth more than putting up with Eclipse.
I use 80 characters per line because if I am at a larger monitor, I can have 2 or 3 split windows side by side. If I'm at a smaller terminal, everything's still readable. I find narrower code is more readable anyway. Most developers I admire write like that. In any case, this is a major flame war topic; if you don't like it, I'm glad that your system works for you.
As far as build systems, I'll take autotools and its learning curve and pain over VS any day. I can fix it when it breaks.
What are you trying to accomplish by saying that my problem is not the tools but that I'm bad at programming? Why is it that because you think you can write decent code in VS, that means that I didn't learn anything new when I switched from it? I know I certainly did; in fact, if I could give myself any advice back when I started any sort of formal programming, it would be: get off VS and Windows immediately! I would be three years ahead of where I am now.
(And re: Eclipse--yeah, it's a bit of a hog, but hardware is cheap. Developer time isn't. And the features it provides have no equivalent in vim et al.--just look in the Source dropdown menu for a number of significant productivity enhancers. Those are some of the more minor ones, even; Open Type probably saves me half an hour a day in the monster of a codebase I have to work in. Eclipse is by no means perfect, but it's geared toward reducing boilerplate and stepping on the annoyances involved in Getting Things Done.)
As far as Eclipse; I've worked with large codebases and I was faster with vim and knew my APIs better than any of my colleagues who used Eclipse. I heard them complain about Eclipse freezing pretty much daily (as well as doing something wrong when it came to interacting with perforce, often in a devastating way). I know that I Got more things Done than any of them.
I see it where I teach, the students that come in are most comfortable with windows + VS and they are productive in this environment. However, after just one course in C programming using vim, the students have a much greater appreciation of the process of producing software. They gain an understanding of compiling and linking, Makefiles and automated builds. (I'm not sure all of them like vim + make, but they see where VS is automating stuff for them and I think this is a valuable thing to learn).
Do you need this understanding to be a productive programmer? Of course not and indeed learning it is a bit of a timesink compared to getting your features finished.
Eventually like most things it is horses for courses (it doesn't make sense to me to develop C# code using vim as you have the worlds best(tm) IDE to help you), but personally I feel that IDEs have become too much of a crutch, they help so much that you can be productive without knowing what you are doing and, this maybe elitist, I feel this harms the industry a little.
Good programmers will always be good programmers, bad programmers can hide with an IDE, they have to learn what they are doing when dropped into vim + make (or other lo-fi tools of choice).
I've found that many programmers who come from a Java background over to .NET have a bad habit of writing their code and deploying it without debugging it even once. It's so much trouble to debug for them, they just wait until it blows up and takes down the server. Or their error handling is just throwing a stack trace to a screen instead of actually handling the error.
Bad programming finds a way.
That said, I have no doubt that there are a plenty of people who are amazing at writing code in VS and are much better developers than I am.