vi keybindings don't really suffice, though, even when fully implemented (which many tools don't). I don't just want basic text editing functionality, though vim does that extraordinarily well. I want substitution, compilation/quickfix mode, grep, indentation, abbreviations, file modes, highlighting, and a dozen other things that prove hard to enumerate until my fingers automatically use them and they don't work.