I'm not trying to start a flame war. I'm trying to be honest and open minded. Here are things I really like about Vim:
- I actually really like modal editing. Like most Vim experts, I spend almost all my time in command mode. I exit insert mode as soon as I'm done adding new text. That means I don't have to spend a lot of time holding down the control (i.e. caps lock) key.
- I find hjkl to be a very convenient replacement for the arrow keys. They're only one key press each, and they're on the home row.
- Vim's notion of combinable commands are intuitive, fast, and powerful. For instance, >aB means shift the block around the current cursor to the right. It is not a function in and of itself. Rather, it's a combination of a few pieces. Like in UNIX, you use small tools and put things together to achieve big things. >aB is like a UNIX pipeline in a way.
- I love the fact that Vim has simple syntax highlighting built in for even very strange languages. Sometimes I don't need a full mode. Nice syntax highlighting is enough.
- I like the fact that it's trivially easy to tell Vim that for such and such a type of file, it should be indented in such and such a way. The type of file need not be code. Even in cases where there is no special mode, Vim can still be very helpful in making the tab do what I want. Sometimes I don't want the editor to indent the code for me. I want it to help me indent the code by understanding how I want the tab key to behave. Of course, smart indentation is available for mainstream languages if I want it.
- I like that Vim has a builtin scripting language, but it can also be scripted with Python. Unlike Vi, it's enough like Emacs that I find it to be a very happy middleground.
- I like the fact that Vim has such a nice infrastructure for supporting multiple widget toolkits. It looks reasonably good looking on any platform.