I have no problems using LSPs for C/C++ (via clangs), rust (rust-analyzer), Python (pyls), JS/TypeScript, CSS, bash, and more in Vim (Well, NeoVim) with the autozimu language client.
To me, in Vim it feels a little bit like one is calling an external program (which one is), and the monospaced text-only UI constrains what can be shown.
In VS Code, the experience is more integrated (because the GUI isn't constrained to a text interface), things update live, so you can preview the changes before applying.
I've tried both, both work but I find myself preferring the VS Code experience.