The editor paradigm to which the typical computer user is accustomed−a stream of characters with insertions and deletions occurring at the cursor−is not the most natural way of interacting with text on a computer. It has the sole virtue of having a near-zero learning curve; anyone who's written with pen and paper or typed on a typewriter can understand what they're doing when presented with such an interface. It is so ingrained in most users' minds that it can be difficult for them to imagine any other way to do it, but that does not make it a natural interface for using a computer to edit text.
For comparison, consider the ability to perform text search while reading a document. This is not possible with physical paper, but is ubiquitous and obvious in a document viewer on a computer. It feels natural to be able to search a computer document even though it is not possible with a physical document. If you've ever needed to make a tiny edit to many lines in a text file then you have experienced how unnatural the typical editing interface is. The rhythmical tapping out of a sequence of keystrokes, over and over, is neither a natural nor an efficient interface for using a computer to edit text.
click-clack-down-right, click-clack-down-right…is the computer really editing the text for you or is it just holding the pen?
Shortly after graduating from college with my computer science degree, I encountered a task at work where I needed to add a comma to the end of every line in a very large text file. I thought "I solve problems by writing programs. I should write a quick, little program to edit this file for me." I wrote a quick, little program to read the file, add the commas, and write the lines back to the file…success. It was not long before I encountered a slightly different, but similar scenario. So, of course, I modified my program to make this new edit. Over time, in the course of modifying my program to be able to handle different editing scenarios, I was building a useful tool.
"It'd be nice to be able to add text to other locations besides the end of the line."
"What if I need to delete or replace text, not just add it?"
"Sometimes I want to perform different actions for different pattern matches."
"How about if I need to make a small, manual edit in addition to the bulk edits?"
"Wouldn't it be cool to have an interactive editing session where I could perform several of these editing tasks and see the results immediately?"
As that laundry list of feature requests gets longer and more complete, you'll find that it more and more closely resembles the functioning of Vim.
Vim is a program for editing text on a computer. Once you make the mental leap from pen and paper to computer program you see that it is not a simulation of the physical act of writing (as the typical editor interface is) but an interface that allows you to use a computer to manipulate text−and there are many more things that a computer can do with text than just write a character; erase a character.
Vim can navigate text by more than just characters. It can move by word, or line, or paragraph, and can edit the text by those same constructs. It has a cornucopia of built-in tools aimed specifically at text manipulation–such as searching, sorting, formatting, auto-completion, and a powerful macro system–that are fully integrated into Vim's basic navigation and editing operations. This ability to compose operations is part of what makes Vim so powerful. Once you learn the basic elements those elementary pieces can be combined into complex operations that would be difficult or impossible in a "typical" editor.
Vim provides a robust set of abilities for manipulating text, merely one of which is inserting and deleting characters.
It has a reputation for being difficult to learn, but it isn't. It is true that Vim does not reward those that put zero effort into learning how to use it, but Vim is not difficult to learn; it is the "typical" editor paradigm that is difficult to unlearn. Once I decided to really give Vim a try and dedicated a chunk of time to learning it, I found that it came easily and fluidly. The tutorials are readily available and I found their claims of how quickly one can achieve proficiency to be accurate. I made the switch to Vim and I haven't looked back.
Now about your caps lock key…