gitmyhub

evil

Emacs Lisp ★ 3.8k updated 26d ago

The extensible vi layer for Emacs.

Evil is an Emacs package that brings Vim's modal keyboard editing style into Emacs, letting you use Vim navigation and commands while keeping all Emacs features and packages you already rely on.

Emacs LispEmacssetup: easycomplexity 2/5

Evil is a package for Emacs that brings Vim-style keyboard editing into the Emacs text editor. Emacs and Vim are two of the oldest and most established text editors used by programmers. They have very different philosophies: Vim is known for its modal editing approach, where the keyboard behaves differently depending on which mode you are in (navigating text vs. typing text vs. making selections), while Emacs has a different keyboard shortcut system with heavy use of modifier keys like Control and Alt.

Evil (short for Extensible VI Layer) lets Emacs users adopt Vim's modal editing style without giving up the Emacs environment they already know. This matters because many people prefer Vim's navigation and editing commands for speed and efficiency, but also want access to Emacs features, packages, and customizations that are difficult or impossible to replicate in standard Vim. Evil bridges the two by running inside Emacs and intercepting keystrokes to behave the way Vim would.

The package replicates the main Vim features: normal mode, insert mode, visual mode, the command-line, text objects, motions, operators, marks, registers, and macros. It also provides an extension system so developers can add custom Vim-style behaviors specific to their workflow or the Emacs packages they use.

Installing Evil is done through Emacs's built-in package manager, with a few lines of configuration added to the Emacs startup file. It requires Emacs version 24.1 or later. Documentation is available online and as downloadable PDF and EPUB files. The project has a mailing list and an IRC channel for community discussion.

Where it fits