Yeah, this exact flow was a pain for me in switching from vscode to vim full time.
My flow now is to search for a bunch of instances using the fzf plugin (https://github.com/junegunn/fzf.vim) and open them into the quickfix list, then do something like
:%s/old/new/gce | :w | :bnext