vi is designed for a specific type of user in mind, one who either edits or navigates through a file and doesn't switch much between the two modes. I don't know about you, but writing code usually follows this style, unless you're an IDE-using codemonkey.