Here are a few ways to add key bindings to do this in a single action, but it's macOS-only and a little clunky. I prefer the one a little further down where you use a second keybind to open the editor.
Shouldn't it be handled by your shell?
I know it's a question without the correct answer - I'm struggling with deciding what should be handled by wm, terminal, terminal multiplexer, shell, text editor.
So my workflow is to type in `vim` and then press `CMD+SHIFT+J` and Enter