GitHub - emacs-evil/evil: The extensible vi layer for Emacs.

 5 years ago
source link: https://github.com/emacs-evil/evil
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Evil is an extensible vi layer for Emacs. It emulates the main features of Vim, and provides facilities for writing custom extensions. Also see our page on EmacsWiki.


See the official documentation for installation instructions. We recommend using package.el.

As a quickstart, you can add the following code to your Emacs init file.

;; Set up package.el to work with MELPA
(require 'package)
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))

;; Download Evil
(unless (package-installed-p 'evil)
  (package-install 'evil))

;; Enable Evil
(require 'evil)
(evil-mode 1)


  • Evil requires Emacs 24.1 or later.

  • Evil requires any of the following for C-r:

    • undo-redo from Emacs 28
    • The undo-tree package (available via GNU ELPA)
    • The undo-fu package (available via MELPA)
  • For the motions g; g, and for the last-change-register ., Evil requires the goto-chg.el package (available via MELPA and NonGNU ELPA), which provides the functions goto-last-change and goto-last-change-reverse.

  • For Emacs 24.1 and 24.2 Evil also requires cl-lib.


The latest version of the documentation is readable online here. It is also available as PDF and as EPUB.

Mailing list

Evil is discussed at the gmane.emacs.vim-emulation mailing list.

Visit us on irc.libera.chat #evil-mode.


See CONTRIBUTING.md for guidelines for issues and pull requests.

About Joyk

Aggregate valuable and interesting links.
Joyk means Joy of geeK