Yes, the first, and sure! So the reason tabs are great in vim (and emacs, and you can kinda do the same with kakoune) is because they are collections of windows (which are views of buffers).
Splits are the main thing. Imagine we have 3 files open in splits like this:
┌───┬─────┐
│ │ B │
│ A ├─────┤
│ │ C │
└───┴─────┘
You can do that in any editor. Now lets say you want to open two more files D and E and have them split side by side. In vim, you can make a new tab and create that layout and then quickly switch between A/B/C & D/E. You cannot do that in VSCode or JetBrains. If you're in section B and open a new file, it will make tab
inside section B.
When I'm using those editors, I find myself constantly creating and destroying layouts and it drives me insane. Let's say I'm editing some files and want to look at the diff of what I've done so far, in vim I can open a new tab and have diff|original. In VSCode it will open the diff in one of my splits, and since it's a diff, it will be split in 2 as well. On my laptop I can't see anything if my diff|original only takes up half my screen, I have to resize/close splits at that point and then going back to what I was doing is more difficult.
When I'm working on code and writing tests, I'll usually have my tests in one tab and the code in another. Or if someone asks me a question, I can make a new tab, start searching/reading code in there and then quickly go back to where I went. I find it extremely handy for context switching.
> (I am actually bad at buffers, I still see them as just "opened files").
I think that's fine. That's the mental model I have as well, except you can have non-file buffers as well, e.g. for plugins. It's actually another great thing about vim, you have to actively try to break the normal hotkeys, otherwise everything works. You can use the same keys everywhere to navigate around in any plugin (unless they override them).