The text editor is one important element of the software tools approach to software development. IDE's violate that approach. The premise of software tools is to do one thing well, in a way that can be combined with other tools. IDE's attempt to be all things to the developer. IDE's are not portable. I can use VIM to write in any language on any platform with any other toolset. Further if VIM is not available - VI is and my VIM knowledge remains useable. Alot of the work I do is with embedded systems - these often do not have GUI's. I can ssh to an embedded system write code in VIM and build it on the target. Further. I use the same tool for everything. I write code in VIM, edit Makefiles, edit error logs, edit shell scripts, edit configuration files, .....