I'd love to see you swap the implementation two methods efficiently without vim. For me, just a few keystrokes: dim]mvimp2[mP and about 3 seconds. For you: a bunch of clicking and selecting, I imagine.
This is just one example of many I could come up with. Code is text, and vim can easily be made to understand that text well.
Definitely don't do that. A well-written IDE should never make one express movement in terms of text because source code is only serialized as text, but the unit of movement should always be symbols. I love vim dearly, and it is an outstanding text editor, but no one should be programming in it when a more intelligent editor exists for the language.
I have seen people trying to fight with the vim plugin in IJ and it has yet to end well