There is a time and a place for everything. If I want to write up a simple test case for something, or write a small program from scratch, then I'll use whatever fancy text editor the platform provides and the terminal.
As soon as I'm working with external libraries that I'm either just starting to learn or are very large, I jump right into Visual Studio because there is no way in hell I'm going to write code "in the dark". Visual Studio's Intellisense makes me more productive and I learn waaaaaaay faster with it, than scouring the internet for API documentation. Visual Studio's tools cut my coding time in HALF most of the time, especially the debugger which is miles ahead of GDB IMO.
Most of the development I do, even personal development, is done using TDD. This means that even the smallest task involves three files for each class (a unit test suite, the header and the source). And I always use a Makefile which runs tests, builds doxygen docs, and builds executables.
I use Kdevelop because it gives me code templates -- I have my Makefile template in there, test suite template, header file template and source file template. Creating each file is just a couple mouse clicks away. Adding the targets to the Makefile requires at most 3 lines for each class. Having to manage all of that with gedit is possible, but is *much* more cumbersome.
With Kdevelop I also get code completion and tooltips. When working with multiple classes in gedit, I would have to look up individual method signatures manually. Not that its tooltips for heavily overloaded methods is always helpful -- some of the STL algorithm tooltips can be a bit unwieldy. That said, it is better that not have any tooltips at all.
Whenever I fire up gedit to "make a quick change", I almost always end up spending more time than if I had used Kdevelop. That's because Kdevelop helps me "make it right" and gedit does not.
I don't use VS too much, so I still feel a bit out of my element while using it, but I wouldn't code C++ in anything else on Windows.
Your terminal is seriously broken. The cat program takes one or more input files, which may include the standard input, and copies them to the standard output. All files are terminated by EOI. For the terminal, that is a Control+D.
I tend to start small files like that too, using cat (on Linux) or copy (on Windows). If I need to then I'll load it up in an editor to make changes. For simple edits I'll use vi or notepad. For bigger edits I'll use my Delphi 5 IDE or kate/kdevelop.