Why I stopped using viper, and am going to stop using Evil
I love the power of the vi/vim modal editing approach, and I applaud how far Evil (and all prior efforts, especially viper) take it in Emacs. I thought I'd write about why I'm not going to use Evil. I tried it for about a week. In the past, I've used viper for about a year before dropping it in favor of vim, which lasted another two years. Overall I have used Emacs for 18 years. In short: it is easier to use one editor at a time. By default, Evil presents you vim key bindings, but makes you use Emacs key bindings too: (a) see the huge list of modes in evil-emacs-state-modes (b) insert mode has Emacs key bindings On (a), most of these modes don't completely rebind the Emacs key map. In particular, they usually don't redefine how the point is moved, how buffers, windows and frames are managed, etc -- this is all vanilla Emacs stuff. In contrast, equivalent modes in vim use the vim key bindings and ex commands for doing all this stuff. On (b), Evil gives me M-q, C-a, C-v, etc. while in insert mode. This means I'm using two editors at once: vim and Emacs. In Evil, many very basic key bindings do wildly different things when switching from normal to insert mode and back: C-f, C-b, C-v, etc. Vim doesn't suffer from this (much) because insert mode is relatively free of key bindings. The vi -vs- Emacs dichotomy is always there, creating friction. This is certainly not the way Emacs would have designed its key commands were modal editing its initial design goal. I don't know what the solution is. In my ideal world, all Emacs key bindings would be entirely blown away and replaced with vim-ish ones. That's pretty audacious!
Hi Matt, my 2 cents, well, maybe 10 cents, on your mail. In short: Thanks for sharing your experience! Mine is quite different though. 2012-02-29 20:36 Matt Armstrong:
In short: it is easier to use one editor at a time.
In contrast to your experience, I appreciate to be able to use two editors at a time, and only Evil gives me the opportunity to do so. I frequently use any Emacs keybindings that have not been overloaded with vim keybindings by Evil. Not just the C-x and C-c prefixes, but also a lot of M-something. Sometimes Emacs is just more convenient than vi. Take for example M-c (capitalize-word). This key has no meaning in vim (AFAIK), and it works both in Evil's normal mode and in insert mode. I don't care about the theoretical possiblity to introduce reasonable keybindings in vim as well – I wouldn't want to make the effort.
By default, Evil presents you vim key bindings, but makes you use Emacs key bindings too:
(a) see the huge list of modes in evil-emacs-state-modes
This is a separate problem I'd say, but agree with your concerns about this and would also appreciate an Evil solution for it. There used to be viper-in-more-modes, which gave vi-style keybindings to a number of typical Emacs modes. Indeed I would prefer vi-style keybindings to be introduced for all modes currently in evil-emacs-state-modes, but it will take time to get them implemented.
(b) insert mode has Emacs key bindings
My feeling about vi's insert mode is that it wastes a lot of potential.
On (b), Evil gives me M-q, C-a, C-v, etc. while in insert mode. This means I'm using two editors at once: vim and Emacs. In Evil, many very basic key bindings do wildly different things when switching from normal to insert mode and back: C-f, C-b, C-v, etc. Vim doesn't suffer from this (much) because insert mode is relatively free of key bindings.
It is IMHO a bug, not a feature, that, e.g., most (or even all?) M-something keys are not bound in vim's insert mode.
The vi -vs- Emacs dichotomy is always there, creating friction. This is certainly not the way Emacs would have designed its key commands were modal editing its initial design goal.
I agree that the design goal of Evil is (IIUC) to reproduce the vim experience as closely as possible in Emacs. Still I think that Emacs can do certain things (even about editing, not just about "being an operating system") better than vi, and therefore I appreciate if these features remain accessible in Evil. (OK, maybe as a customizable flag.) But I might just be a privileged minority. If the main goal of Evil is to give die-hard vim users an "operating system" (which vim doesn't quite do), I am not in the target audience. I had advanced experience with both Emacs and vim before starting to use Evil. (In short, I had been using Emacs for writing large files, and vim for reading or for writing small files.) Now I appreciate being able to use the best of both editors in one editor. Cheers, Christoph -- Christoph Lange, http://www.facebook.com/ch.lange, Skype duke4701
On Thu, Mar 1, 2012 at 5:54 AM, Christoph LANGE <[email protected]> wrote:
Hi Matt,
my 2 cents, well, maybe 10 cents, on your mail.
In short: Thanks for sharing your experience! Mine is quite different though.
2012-02-29 20:36 Matt Armstrong:
In short: it is easier to use one editor at a time.
In contrast to your experience, I appreciate to be able to use two editors at a time, and only Evil gives me the opportunity to do so.
My perspective is different, too. I've never really used Vim, so differences between Vim and Emacs don't really cause any headaches for me. Evil works smoothly for what I do. I might be tempted to try Vim, but I like Org-mode and ESS (with R) too much. I came to modal operation by way of using vimperator then pentadactyl in Firefox. - Tom
Don't get me wrong, I respect that other folks can be quite happy with Evil. I coded all day today with vanilla Emacs key bindings and found it delightfully...simple and free of paradigm conflicts. :-) On Thu, Mar 1, 2012 at 4:43 AM, Tom Short <[email protected]> wrote:
On Thu, Mar 1, 2012 at 5:54 AM, Christoph LANGE <[email protected]> wrote:
Hi Matt,
my 2 cents, well, maybe 10 cents, on your mail.
In short: Thanks for sharing your experience! Mine is quite different though.
2012-02-29 20:36 Matt Armstrong:
In short: it is easier to use one editor at a time.
In contrast to your experience, I appreciate to be able to use two editors at a time, and only Evil gives me the opportunity to do so.
My perspective is different, too. I've never really used Vim, so differences between Vim and Emacs don't really cause any headaches for me. Evil works smoothly for what I do. I might be tempted to try Vim, but I like Org-mode and ESS (with R) too much. I came to modal operation by way of using vimperator then pentadactyl in Firefox.
- Tom
_______________________________________________ implementations-list mailing list [email protected] https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list
Christoph LANGE <[email protected]> writes:
2012-02-29 20:36 Matt Armstrong:
In short: it is easier to use one editor at a time.
In contrast to your experience, I appreciate to be able to use two editors at a time, and only Evil gives me the opportunity to do so.
Well it's quite a mental burden and they don't mix that easily. a) Using Emacs makes it really easy to stay in insert-state a lot of time. b) Vim's undo model works with "iterations" of insert- and normal-state changes Take them together and you know what bites me more often than I like. Well Evil offers to change the undo granularity, but I really like the Vim model because it breaks changes down in a semantically related way. I also appreciate the power of Emacs and Vim at my fingertips but it's not exactly _easy_.
By default, Evil presents you vim key bindings, but makes you use Emacs key bindings too:
(a) see the huge list of modes in evil-emacs-state-modes
This is a separate problem I'd say, but agree with your concerns about this and would also appreciate an Evil solution for it. There used to be viper-in-more-modes, which gave vi-style keybindings to a number of typical Emacs modes. Indeed I would prefer vi-style keybindings to be introduced for all modes currently in evil-emacs-state-modes, but it will take time to get them implemented.
As I've pushed quite some into that list, that's my feeling as well. Many of those modes are some kind of `menu modes': You move your cursor more easily as in vanilla Emacs (like n & p instead of C-n & C-p) and do something with the entry at point, archive-mode is a perfect example of this. (I'm pretty sure there are more mode patterns to find) Dired _was_ a perfect example of this: It's evilized now. If we can come up with a way to programmatically evilize a mode-map a lot of the modes in there will vanish. The greatest obstacle is where to put conflicting keys maybe in an own keymap ... but where to bind that keymap? Any ideas here? If you want a hard nut to play with: Try magit. They have lots of (useful) single letter keys, many conflicting with basic vim movement keys. Most dreadful one being `k' I don't count anymore how often I was asked (luckily!) if I wanted to kill that chunk/item ... @ Matt Well I don't think it's evil's goal to reimplement Vim faithfully because it'd much more work than just to merge the two (or copy the best things) with little gain. I'm also not sure what do you hope to gain with an Emacs that behaves exactly like Vim but is not Vim. Am I reading you wrong here? Could you elaborate? Anyway thanks for your input but sadly I don't think that this can be solved (or at least only in the long run). Michael
On Fri, Mar 2, 2012 at 6:08 AM, Michael Markert <[email protected]> wrote:
@ Matt Well I don't think it's evil's goal to reimplement Vim faithfully because it'd much more work than just to merge the two (or copy the best things) with little gain.
I'm also not sure what do you hope to gain with an Emacs that behaves exactly like Vim but is not Vim.
One of the great benefits of Evil is that it allows me to switch between Vim and Emacs with little mental effort. (For me, this marks nothing less than the end of the great editor wars.) At work, I often have to do stuff on machines that don't have Emacs installed. I love the fact that, in these situations, I can effortlessly switch to Vim. For this reason, I think it's highly desirable that things work the same in Vim and Evil to the extend possible. Of course Evil should also take advantage of the all the goodies that are present in Emacs but where possible it should stick to how things work in Vim. If Evil would start to deviate from Vim, this would also make it difficult for new users to switch and it would require a lot of new documentation for Evil. Right now, I often just refer to Vim documentation when I want to know how something works in Evil, which is great. Titus
participants (5)
-
Christoph LANGE -
Matt Armstrong -
Michael Markert -
Titus von der Malsburg -
Tom Short