For me, part of the reason I use Vim rather than XCode, JGrasp, or Visual Studio (all of which I've tried), is because I'm a major command line junkie. When I work in the command line, I feel like I am communicating directly with my computer, rather than having a GUI act as the middleman and translate everything between us.
Another thing about the command line is that many people find it arcane and hard to use, which gives me the sense that I am doing something few others can do, and induces a sense of mystique.
Finally - and this may surprise some people - I find command lines easier to use. For someone like me, who has difficulty translating verbal instructions and applying them to a visual interface (I suspect this may be an aspie thing), it's much easier to type a command given in a tutorial than it is to search for a button on the screen. CLIs to me are more logical, and there is a beautiful simplicity to them, despite their awesome power.
The main advantage of GUIs is you don't need to read a tutorial or documentation to know what to do; you just have to poke around and see what everything does. But I prefer learning something through a tutorial. I like learning new things, and I like things that have a good learning curve to them.
I don't know what is with this fear everyone has of interacting with computers in only text. When you read a novel, you're using a text-only environment. Most people I would suspect read at least a couple text-only books every year. Why not a CLI?
Still, I wouldn't recommend a CLI to the average user, as most of the things you can do with it are things they would not find useful. For me, learning the Unix command line has provided me with a wide array of programming tools, plus the ability to automate certain tasks, and the ability to use open-source software that only works from the terminal, like for instance MySQL. None of these would be useful to someone who only uses a computer for writing reports and spreadsheets, storing their pr0n collections, and playing PC games.