You're seeing an implementation detail. In buflist_getfile()
(found in src/buffer.c
), the switchbuf=newtab
is handled by this code:
if (swb_flags & SWB_NEWTAB) /* Open in a new tab */
tabpage_new();
Basically, Vim performs a :tabnew
followed by the :edit file
command, whereas a :tabedit file
would be better, because it avoids the empty tab page (which has to display something, so an empty buffer is created).
Admittedly, this is mostly a cosmetic issue, but I can understand that it bothers you. You can raise this on the vim_dev mailing list; ideally with a patch that fixes the problem.