IDE’s make you lazy. What is the number one thing programmers do? Type. What do IDE’s do? They take your fingers off the keyboard and tie it to the mouse. This is a waste of movement! Wasted movement is wasted time. Not only that, but IDE’s frequently make people forget basic command line operations, depending on a GUI layer of abstraction to handle everything from file renames, version control, automated builds, deployment, configuration, making coffee. Maybe they don’t make coffee out of the box, but I heard there’s a plugin for IntelliJ.
I advocate plain text editors as much as possible. I also advocate command line usage as much as possible. Where do I spend the majority of my time? Terminal. I have Finder, why do I user Terminal? I don’t have to take my fingers off the keyboard.
VIM is one of the more popular text editors. Favorite among system admins and older programmers, VIM is fast and efficient for text manipulation. However, most people still have trouble understanding VIM for the same reason they have problems with combining bash commands. Stop thinking over everything as a command. Instead think about creating sentences that describe what you want to accomplish.
Your problem with Vim is that you don’t grok vi.
You mention cutting with yy and complain that you almost never want to cut whole lines. In fact programmers, editing source code, very often want to work on whole lines, ranges of lines and blocks of code. However, yy is only one of many way to yank text into the anonymous copy buffer (or “register” as it’s called in vi).
The “Zen” of vi is that you’re speaking a language. The initial y is a verb. The statement yy is a simple statement which is, essentially, an abbreviation for 0 y$.
Even an IDE isn’t that bad once you commit the majority of commands to memory. Their other disadvantages include a huge memory footprint, clunky interface, poor speed, and a horrid need to invade every part of your system. Imagine taking in a roommate who insists all the walls be repainted, the locks changes, the carpet replaced with wood, and a dial up modem instead of cable.
I’m a hard core text editor user. I never found a use in heavy weight applications like Dreamweaver for web development. Now I’m starting to use Tomcat (along with JSP and Java Servlets) to run Java based, web deployed, applications and I find every single tutorial is a walk through of how to make your IDE generate code for you. Everything from the XML file to the WAR deployment is contained in the IDE.
Oh, and there is no simple way to do this by hand.
The directory structure alone requires a complex layout complete with several extraneous files simply to build the deployment package for Tomcat. I find myself writing scripts to handle compiling, jarring, and deploying into Tomcat.