Hacker News new | ask | show | jobs
by dllthomas 4289 days ago
"The thing is, they could probably have won me over a million years earlier by starting me off at insert mode on the first line!"

I wouldn't like "open in insert mode" at all - if I'm opening an existing file, I probably want to edit it, not just add text (especially not at the beginning) - which means the first thing I'm probably wanting to do is navigate, which is much easier done in command mode.

When opening a new file, there's a better argument for starting in insert mode, but even then I'm likely to want to populate the buffer with the output of some command.

Of course, hitting escape first isn't disastrous - but neither is hitting i before you type.

All of that said, my defaults don't need to be your defaults! Add startinsert to your vimrc to get the behavior you want:

    echo startinsert >>~/.vimrc
2 comments

Very interesting! I'm more interested in it as an attraction to new users; I agree that "morally" it should probably start in command mode since it should be designed for its most common use cases first.

I'm just observing that I would have understood it much more rapidly if I'd started in insert mode my first few times, because then the expressive command mode enabled by the Esc key seems "layered onto" the basic insert-mode editing that a new user expects to be the main purpose of a text editor. From insert mode, you can page down and delete and insert pretty straightforwardly; and you get gently introduced to command-mode when you say "hey, how do I save this document now?". So pedagogically it would have really helped.

I have mixed feelings on the pedagogy. On the one hand, it would have eliminated some frustration, which would have presumably been helpful. On the other, driving home that "normal mode is normal" serves a pedagogical purpose as well. The power of vim really starts to emerge when you internalize that inserting text is just another action.
"evim" (easy Vim) is normally installed wherever vim is, and opens in insert mode by default.