I personally use VIM or Sublime Text 2 until I need a good UI for debugging. At that point I switch to PyCharm by JetBrains. PyCharm isn't free (neither is ST2 I guess) but I find it to be an exceptional IDE that doesn't seem to get in my way as much as some but provides some really nice features. I recommend checking it out as they have a 30 day free trial.
EDIT: I should really read the whole post. "Has to be free". I'd still recommend checking out PyCharm.
EDIT2: I also ran across Ninja IDE on HackerNews. It's new and FOSS. Got some rough edges and it's no full IDE but it's on its way.
(not necessarily web dev, just an overview of all tools I use in my coding work...)
I used to be a regular Vim user when I was working on a C/C++ projects involving a few files. However, when I did my Operating Systems course, I found that SublimeText was definitely a better option for large, multi-file projects (without learning to use special Vim plug-ins, such as NERD tree). Since then, I started moving my coding work to Sublime, leaving Vim for only small, quick changes.
I use Ninja IDE, some features I find particularly useful are:
Also for trying things, especially data analysis related, I use IPython Notebook more and more.
I've always seen this recommendation, but I haven't tried it out myself. It's on my list of things to attempt, but I come from a Eclipse and Visual Studio world so it's strange for me to think of things outside of that all-in-one solution.
From what I can figure an IDE is only a text editor with a few added features and widgets.
Syntax highlighting: All good text editors should give you this for any language you are writing in, and all the ones you listed I believe do out of the box, so that's taken care of.
Embedded building: I imagine this would simple enough to take on to an editor or done fairly quickly outside of one. I don't mind having to drop out of my editor to build, even if I'm not used to the idea.
Auto-completion: This seems like such a trivial thing to miss, but I really find it speeds my work up so much to have it, and leads to fewer stupid compiler errors for syntax issues. I don't know how this feature would be implemented in a command-line only editor. Could you help me out?
Integrated debugging: This is the single most important feature in the world to me. Setting breakpoints (optionally conditional breakpoints) and stepping through my code using tools to inspect it as I go along is so huge. I detest println/printf/echo debugging because it takes so much long, and requires me to do so much extra work. How do you achieve this is a command line only environment?
To speak to the original posters question, I've heard good things about Ninja-IDE but haven't had the chance to try it.
edited for formatting.