Re switching: I did the same thing. After a year or two of doing my best to use Emacs as it was intended -- to ensure I "got" it -- I recently switched to evil-mode (another one of those vim-in-emacs implementations) and have been quite happy with it. I still get the good Emacsian stuff like using C-x C-e to eval one-offs in a scratch buffer but I also get the superior vi keybindings for navigating text.
(To respond to another comment here, I also tried viper mode but it never stuck. It might have been too soon after switching, or it might have been that it was missing some integrationy magic that I gave it the wrong feel.)
Another vote for evil-mode. I'm a long time Emacs user that started using Emacs after being quite proficient in Vim. One reason I switched was for Emacs' Common Lisp environment, the other is I never really liked vi's modal editing paradigm.
However after many years of searching for the perfect keybindings I rediscovered Vim's charm for navigating and editing text, although I will never leave Emacs for it. The latter is too powerful. With Vim bindings finding their way in more and more applications they start to become pretty universal. (That said, it still prefer Emacs bindings in my shell.)
Evil really does give me the best of both worlds even wrt to keybindings and because of the muscle memory also makes firing up Vim on the shell or another server really convenient.
If you're a pure Vim user you will have to get used to some Emacs behavior, it is no drop-in replacement but it is pretty darn close. Some modes (Magit - a Git mode) are not supported.
(To respond to another comment here, I also tried viper mode but it never stuck. It might have been too soon after switching, or it might have been that it was missing some integrationy magic that I gave it the wrong feel.)