The real strength of vim (and emacs, though I haven't learned emacs to know this firsthand) is the expressivity of it rather than the raw speed. When you can express an edit as a sequence of key presses, you can record and replay that to easily and make the "same edit" in many places.
The funniest time I did this was with a interview screening question which had a hundred-deep chain of links with the URL for the next link embedded in some JSON with some additional formatting required to get a working link. Vim let me copy a line of text that's a curl command, shell out to replace it with the ~6 lines of JSON response, edit that as a string down to a curl command to the next URL, and wrap that entire process up as a macro to run a hundred times.
I still vividly remember a peer watching me carefully record a vim macro, thinking I was just editing. Right as he said "Why are you so slow?!?", I ran `100@q` to apply the edit to the whole file. Just "oh." after that.
As a vim and emacs user, macros are really nice. But the true superpower, IMO, is that code is fairly structural in the file and outside of it, and both allow me to quickly navigate that structure. Vim is more powerful on the edit side, but emacs has more convenient utilities.