doomemacs/modules/feature/evil
Henrik Lissner 09cb4f6716
Major refactor & optimization of how modules load their packages
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.

In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.

Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.

This gained me a modest ~10% boost in startup speed.
2018-05-25 00:46:16 +02:00
..
autoload Major refactor & optimization of how modules load their packages 2018-05-25 00:46:16 +02:00
test Conform unit test macros to naming convention 2018-03-27 02:52:30 -04:00
config.el Major refactor & optimization of how modules load their packages 2018-05-25 00:46:16 +02:00
packages.el feature/evil: add evil-collection (with +everywhere flag) #459 2018-03-19 04:39:02 -04:00
README.org Update & reformat module readmes for v2.0.9 2018-01-01 13:21:53 -05:00

:feature evil

This holy module brings the vim experience to Emacs.

Removing evil-mode

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 at once (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
  • From 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.