Evil for Emacs users

Leo Alekseyev dnquark at gmail.com
Wed Feb 22 23:16:08 CET 2012


>
>> 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



More information about the implementations-list mailing list