2017-08-21 20:07:07 +02:00
|
|
|
#+TITLE: :feature evil
|
2017-06-05 12:52:04 +02:00
|
|
|
|
2017-08-21 20:07:07 +02:00
|
|
|
This holy module brings the vim experience to Emacs.
|
2017-06-05 12:52:04 +02:00
|
|
|
|
2017-08-21 20:07:07 +02:00
|
|
|
* Table of Contents :TOC:
|
|
|
|
- [[#removing-evil-mode][Removing evil-mode]]
|
|
|
|
- [[#features][Features]]
|
|
|
|
- [[#multiple-cursors][Multiple-cursors]]
|
|
|
|
- [[#a-hybrid-code-folding-system][A hybrid code-folding system]]
|
|
|
|
- [[#hacks][Hacks]]
|
|
|
|
- [[#differences-from-vim][Differences from vim]]
|
2017-06-05 12:52:04 +02:00
|
|
|
|
2017-08-21 20:07:07 +02:00
|
|
|
* Removing evil-mode
|
2017-12-31 23:07:28 -05:00
|
|
|
See the [[https://github.com/hlissner/doom-emacs/wiki/FAQ#remove-vimevil-for-a-more-vanilla-emacs-experience][corresponding question in the FAQ]].
|
2017-08-21 20:07:07 +02:00
|
|
|
|
|
|
|
* Features
|
|
|
|
+ A better ~:g[lobal]~ command with incremental highlighting.
|
2017-12-31 23:07:28 -05:00
|
|
|
+ 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.
|
2017-06-05 12:52:04 +02:00
|
|
|
+ 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~)
|
2017-08-21 20:07:07 +02:00
|
|
|
+ Incorporates vim functionality ported to evil:
|
2017-06-05 12:52:04 +02:00
|
|
|
+ ~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=
|
|
|
|
|
2017-08-21 20:07:07 +02:00
|
|
|
** Multiple-cursors
|
2017-12-31 23:07:28 -05:00
|
|
|
Two multiple-cursor implementations exist in this module: ~evil-mc~ and
|
|
|
|
~evil-multiedit~. Together, these provide the functionality of
|
|
|
|
~vim-multiple-cursors~.
|
2017-06-05 12:52:04 +02:00
|
|
|
|
2017-12-31 23:07:28 -05:00
|
|
|
The former lets you place "clone" cursors. The latter lets you interactively
|
|
|
|
edit many regions at once (like an interactive version of ~:%s~).
|
2017-06-05 12:52:04 +02:00
|
|
|
|
2017-08-21 20:07:07 +02:00
|
|
|
** A hybrid code-folding system
|
2017-12-31 23:07:28 -05:00
|
|
|
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.
|
2017-08-21 20:07:07 +02:00
|
|
|
|
|
|
|
Most vim folding keys should work, e.g. =zr=, =zm=, =za=, =zo=, etc.
|
2017-06-05 12:52:04 +02:00
|
|
|
|
2017-08-21 20:07:07 +02:00
|
|
|
** Hacks
|
2017-06-05 12:52:04 +02:00
|
|
|
+ Automatically moves to new window when splitting
|
2017-12-31 23:07:28 -05:00
|
|
|
+ From visual mode, =*= and =#= will search for the current selection instead of
|
|
|
|
the word-at-point.
|
2017-06-05 12:52:04 +02:00
|
|
|
|
|
|
|
** Differences from vim
|
2017-12-31 23:07:28 -05:00
|
|
|
+ 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~).
|
2017-08-21 20:07:07 +02:00
|
|
|
+ =:g= will incrementally highlight buffer matches.
|
2017-06-05 12:52:04 +02:00
|
|
|
|