Vim is without any doubt one of the most powerful text editors out there. Anyway a newcomer who is starting to learn it can find it quite confusing and not very intuitive. The main reasons behind this confusion is that vim, is not similar to many of the text editors, some of the major differences are:
- vim is a modal text editor;
- common shortcuts which are commmonly accepted among many applications (e.g., Ctrl+c, Ctrl+v, Ctrl+z) do not work in vim as expected;
- vim is mostly used from the command line;
- vim has too many "cryptic" commands to learn.
If we just consider these points, we could say from a Human Computer Interaction perspective that modal tools are unnecessarily complicated and non intuitive, and also when designing a tool we should always make it more intuitive and user-friendly as possible. Indeed Jef Raskin -- a Human Computer Interaction expert -- once said: "Modes are a significant source of errors, confusion, unnecessary restrictions, and complexity in interfaces." Anyway these considerations should not be followed when we talk about vim. Indeed, User Interface theory generally is aimed at letting users spend as less time as possible learning an interface. Anyway vim experts know that in order to have a more proficient text editor users should have a desire to learn, and this is a necessary prerequisite in general to be a vim user. So to sum up, UI experts don't take into account our ability or desire to learn.