Thanks to using BBEdit for a decade now, I get bitterly disappointed whenever I re-open an application and it doesn't restore the windows and state it had when it closed. I've tried switching to both Emacs and Vim, but no amount of configuration nor third-party plugins could get them to work like this effectively. BBEdit works exactly how I want it to work out of the box, and I commend it for that.
I don't know about Vim, but Emacs will do this easily with `persp-mode`. To skip a bit of customization work, get doom-emacs and enable the `workspaces` module, which will save sessions for you by default.
Be careful what you wish for. I use one application which does not check whether the computer goes from 2 external monitors to the built-in laptop monitor. When I reopen the app on the laptop without the external monitors, all of its windows are drawn completely off the screen. The only way I know how to fix this is to reattach the external monitors, move the windows to the built-in screen, then close the app again.
Shouldn't your window manager just handle this for you, by moving the windows to the builtin display when the external monitor is detached, and moving them back again when it's reattached? (Like my Mac has been doing for I don't know how long?)
I'm not sure what this comment is supposed to add to the discussion. It's the same as those comments that just say "This", except it does it with 40x the number of words, no?
It is an endless source of irritation that the fans of these editors are so relentless in their refusal to shut up and stop denigrating alternatives that people are left feeling that they must use them, regardless of whether they're a good fit or not.