I find Evil suffers from some of the same problems as viper does:
1) Discoverability. In Emacs C-h b is useful. In vim, :help is wonderful. What does Evil give me that informs me what I can actually type?
Well C-h k still works, but that as well only goes so far ...
Referring to vim docs only goes so far. For example, typing d C-h doesn't bring up what I can then type (iw, or whatever).
For prefix keys there's the C-h convention to show the bound keymap. Maybe we could support that as well and show a generated cheatsheet ({i, a, o, ...} x text objects).
A configurable option to turn on a "cheat sheet" like this would be super helpful, especially for those new to Vim. I believe there are standard (?) ways to achieve this -- at least, I've seen it in many modes (e.g. cua-rectangle).
2) How do I fix my problem? viper and Evil suffer from the same thing: a low-adoption alternative. There will always be a foo-mode out there that doesn't work well. What are the common problems and how do I fix them?
Problems:
1. Shadowed keys - Rebind them with `evil-define-key' or `evil-declare-key' (or Leo's `evil-undefine') or
Correction: evil-undefine is all Frank's -- a solution to something I asked on the list earlier :) In terms of keybindings, conflicts are virtually unavoidable, but between sensible defaults and ease of customization, it should be at worst a minor inconvenience. What constitutes sensible defaults might be very user-specific. My hope is that with greater adoption of Evil, the pain points will become more clear, and eventually there will be a set of reasonable defaults/guidelines/suggestions that would minimize these frictions. Somewhat more worrisome to me are behaviors that are fundamentally incompatible between Emacs and Vim, such as the "on character" vs "between characters" cursor placement in normal/visual vs insert modes (one can think of it in terms of closed or open intervals). It would be worthwhile identifying such incompatibilities. To an extent, Evil could compensate for this; for example, the recently-implemented evil-want-visual-char-semi-exclusive makes Evil "do the right thing" (from an Emacs user's perspective) when doing visual selection at the beginning/end of lines. Certain other things, e.g. s-expression motions in normal/visual modes, remain somewhat broken (in the off-by-one sense). I'm not sure if a general solution to this is possible, but it's something worth thinking about. --l