I mostly use Vim to edit configuration files so I understand why it starts in normal mode. But I also use vi mode for the REPL (bash, zsh, ipython, etc.) and the shell always starts in insert mode (this makes sense because you just want to start typing a command).
For the same reason, when I open a new empty file vim foo.txt
, I want to be in insert mode. So I'm looking for a vimrc function that checks if the file is empty and then put me in insert mode.
In this way I can be consistent across the terminal. When there aren't text objects I know I'm in insert mode.