Commit f4588e40 authored by Pierre Neidhardt's avatar Pierre Neidhardt

evil-collection: Init

parent 7cfe6bd9
Pipeline #28282559 passed with stages
in 1 minute and 9 seconds
#+TITLE: Evil Collection
#+DATE: <2018-08-20 Mon>
Evil Collection is a set of [[https://github.com/emacs-evil/evil][Evil]] bindings (a Vim emulation layer for [[https://www.gnu.org/software/emacs/][Emacs]])
targeting all the modes (e.g. =help-mode=, =M-x calendar=, Eshell and many more)
that are not covered by default.
The incomplete coverage of Evil was the main critique that discouraged many Vim
fans from using Emacs. Hopefully this complaint now belongs to the past.
* Installation and development
See https://github.com/emacs-evil/evil-collection.
Although more than 100 modes and counting are supported, our work is not over
yet: some points in the rationale still need to be worked out, some modes are
missing. Development has gained significant traction and will probably remain
active for a while. More improvements are to be expected in the future.
Should you run into any issue or miss a mode in particular, check the [[https://github.com/jojojames/evil-collection/issues][issue
tracker]] and let us know. All contributions are welcome!
* Motivation
The Evil mode is widely considered the best Vim emulation layer out there to the
extent that "Evil is Emacs true editor" has become a recurring joke.
And yet, despite its tremendous success, many Vim users and other modal-editing
enthusiasts refrain from switching to Emacs/Evil for the sake of one major
hindrance: that Evil bindings are not ubiquitous within Emacs and that too many
special modes require a "binding context switch" that can be disconcerting, if
not a frustrating cognitive burden.
The solution is obvious: write bindings for all the modes that require it.
That is, all the Emacs vanilla modes, but also all the third-party, community
supported packages.
Facing the Herculean proportions of this task, no wonder that we haven't seen it
happening in years. And yet this is too bad.
For too many of us, Evil users, the "binding context switch" is a daily pain in
the hands. If you've felt among the brave ones, maybe you've rolled up your
sleeves and derived some approximate, mildly inconsistent bindings of your own.
For countless hours of frustration.
Writings bindings, at least consistent ones, /is hard/.
Last but not least, this might be the last milestone before many Vim
wannabe-converts actually make the final move to join the ranks of the Emacs
community :)
Enter Evil Collection:
- Defined guidelines to enforce bindings as consistent as possible across a wide
variety of modes.
- Bindings for the "rest of vanilla Emacs" that is not covered yet. Since
Emacs, despite its huge size, features a limited number (understand "finite")
of special modes and that most of those are rather simple (think
`package-menu`), this is very feasible. This would also be a good starting
point as a reference for the guidelines.
- Binding sets for all the popular third-party packages out there. (I know,
that's crazy.)
Note that Evil Collection does not step on the territory that is already covered
by other independent packages, namely:
- [[https://github.com/emacs-evil/evil-magit][evil-magit]]
- [[https://github.com/noctuid/lispyville][lispyville]]
- Org-mode: https://github.com/GuiltyDolphin/org-evil or https://github.com/Somelauw/evil-org-mode
You'll have to install those separately for a complete Evil experience.
Two previously separate packages have been integrated in Evil Collection:
- [[https://github.com/emacs-evil/evil-ediff][evil-ediff]]
- [[https://github.com/JorisE/evil-mu4e][evil-mu4e]]
* History
/The above article is mostly taken from the following conversations:/
- https://www.reddit.com/r/emacs/comments/7akqy3/evil_everywhere_the_rest_of_emacs/
- https://www.reddit.com/r/emacs/comments/7loyln/evil_collection_has_hit_melpa_enjoy_the_full_vim/
I started working independently on this initiative around the time I first
posted the aforementioned articles. A commenter pointed out that another fellow
developer, [[https://github.com/jojojames/][James N]] (whom I didn't know at the time) had been working on a
similar binding set. After a brief discussion, we decided to join forces into
what was going to become Evil Collection.
Hadn't we had the luck to get to meet, it's most certain that the project would
not have grown so fast while maintaining such a high quality standard.
This story is, I believe, a great show off of the productive and efficient
dynamics inherent to free software development.
......@@ -5,7 +5,7 @@
- [[https://gitlab.com/ambrevar/dotfiles][dotfiles]] - Emacs (EXWM, Evil, Helm, mu4e, Eshell…), Guix, custom xkb layout
- Emacs
- [[https://savannah.gnu.org/project/memberlist.php?group=emms][EMMS]] ([[https://savannah.gnu.org/project/memberlist.php?group=emms][contributor]])
- [[https://github.com/emacs-evil/evil-collection][Evil collection]]
- [[../evil-collection/index.org][Evil collection]]
- [[https://gitlab.com/Ambrevar/emacs-fish-completion][Emacs fish completion]]
- [[https://gitlab.com/Ambrevar/emacs-gif-screencast][Emacs GIF Screencast]]
- [[https://github.com/emacs-helm/helm][Helm]] ([[https://github.com/orgs/emacs-helm/people][contributor]])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment