'endofline'
is on by default so you don’t need it in your ~/.vimrc
.
EOL or “newline” doesn’t mean “there’s an empty line after here”, it means “this marks the end of the line, any further characters are to be displayed on another line”. “newline” != “new line”.
The last line of your file is #21 and it ends with a “newline” character. Since there’s no actual line after that “newline” character, no line #22, showing a line #22 is not only wrong but misleading.
TextMate’s behavior is wrong.
Vim’s behavior is correct.
If you want Vim to show a line #22, you’ll need to explicitly add that line but it sounds rather silly to me.