I've used IDEs, but just keep ending up using vim. With fzf, ctags, clangd and YouCompleteMe, it's a very productive tool for C++. The two things I really miss from Visual Studio are the easy project setup - writing cmake by hand isn't very fun and debugging why it isn't generating what you want is a pain ; and the great visual debugger - nothing I have tried on Linux is as comfortable as GDB's TUI, which isn't very comfortable to begin with, though the capabilities unlocked by the python bindings are unmatched. I've used GDB's python features to great effect to continually monitor the program and stop when it reaches the invalid state I'm interested in, while logging back traces of interesting points.
You should check out some of the new plugins that use the LSP - it's the same thing used by VS Code but available to any editor. Conqueror of Completion (Coc) is what I use and is very popular. It's even better than YCM