Emacs has viper-mode; vi has no Emacs emulation available (although I'd love to get back a set of macros for vi I once had that simulated a Turing machine, proving that vi too can do anything). Ergo Emacs is superior.