doomemacs/modules/feature/evil
Henrik Lissner 9d81bc5a8b
Major refactor: use-package-always-defer = nil & use :hook
Possibly breaking change: packages are no longer deferred by default.

Addresses #286
2017-12-08 23:14:11 -05:00
..
autoload Add conditional autoload/compile cookies #229 2017-11-05 01:16:35 +01:00
test Rewrite and move doom-resolve-vim-path tests 2017-09-27 01:40:11 +02:00
config.el Major refactor: use-package-always-defer = nil & use :hook 2017-12-08 23:14:11 -05:00
packages.el Extract neotree from feature/evil => tools/neotree 2017-06-05 00:51:56 +02:00
README.org Standardize module READMEs 2017-08-21 20:13:31 +02:00

:feature evil

This holy module brings the vim experience to Emacs.

Removing evil-mode

To get back a more vanilla Emacs experience, remove :feature evil from init.el. Evil-specific configuration and keybindings (defined with map!) will be ignored without evil present (and removed when byte-compiling).

Features

  • A better :g[lobal] command with incremental highlighting.
  • Adds the :al[ign] ex command: offers an ex interface to align-regexp with incremental highlighting.
  • Support for more of vim's filename modifiers in ex commands (like :p, :p:h or :t) than vanilla evil-mode offers.
  • A list of new text objects:

    • Blocks: B (from evil-textobj-anyblock)
    • Args: a (from evil-args)
    • Indentation: i / I / J (from evil-indent-plus)
  • Incorporates vim functionality ported to evil:

    • vim-commentary => evil-commentary
    • vim-easymotion => evil-easymotion
    • vim-multiedit => evil-multiedit
    • vim-multiple-cursors => evil-mc & evil-multiedit
    • vim-seek or vim-sneak => evil-snipe
    • vim-surround => evil-embrace & evil-surround
  • NERDTree equivalent is available in :tools neotree

Multiple-cursors

Two multiple-cursor implementations exist in this module: evil-mc and evil-multiedit. Together, these provide the functionality of vim-multiple-cursors.

The former lets you place "clone" cursors. The latter lets you interactively edit many regions from one place (like an interactive version of :%s).

A hybrid code-folding system

This module combines evil-vimish-fold and hideshow. The former allows arbitrary folds and the latter allows folds on markers and indentation. Together, they create a more consistent (and feature-complete) code-folding system.

Most vim folding keys should work, e.g. zr, zm, za, zo, etc.

Hacks

  • Automatically moves to new window when splitting
  • If in visual mode, * and # will search for the current selection instead of the word-at-point.

Differences from vim

  • Column-wise ranges in ex commands are enabled by default. i.e. the range in :'<,'>s/a/b will only affects the visual selection, not full lines (see evil-ex-visual-char-range).
  • :g will incrementally highlight buffer matches.