After some profiling, it turns out map-put and map-delete are 5-7x slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for small lists (under 250 items), which is exactly how I've been using them. The only caveat is alist-get's signature is different on Emacs 25, thus a polyfill is necessary in core-lib. |
||
---|---|---|
.. | ||
autoload | ||
test | ||
config.el | ||
packages.el | ||
README.org |
:feature evil
This holy module brings the vim experience to Emacs.
Table of Contents TOC
Removing evil-mode
See the corresponding question in the FAQ.
Features
- A better
:g[lobal]
command with incremental highlighting. - Adds the
:al[ign]
ex command: offers an ex interface toalign-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
(fromevil-textobj-anyblock
) - Args:
a
(fromevil-args
) - Indentation:
i
/I
/J
(fromevil-indent-plus
)
- Blocks:
-
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
orvim-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 (seeevil-ex-visual-char-range
). :g
will incrementally highlight buffer matches.