#+TITLE: spacemacs-evil layer #+TAGS: layer|misc|spacemacs * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#note-about-evil-collection][Note about evil-collection]] * Description This layer adds various adjustments to packages to create an evilified experience throughout the entirety of Spacemacs. ** Features: - Add evil tutorial with =evil-tutor= - Add relative line number with =linum-relative= (only in Emacs 25.x and older) - Add escaping under ~fd~ by default with =evil-escape= - Add occurrences count in mode-line when searching a buffer - Add support for lisp structure manipulation with =evil-lisp-state= - Add safe structural editing of lisp dialects with =evil-cleverparens= - Add =evil-exchange= to swap text - Add easy live editing of multiple occurrences with =evil-iedit-state= - Add new vim text objects for indentation with =evil-indent-plus= - Add operations to align text with =evil-lion= - Easy management of comments with =evil-nerd-commenter= - Navigation between pairs with =evil-matchit= - Advanced navigation on brackets with =evil-unimpaired= - Easy increment and decrement of numbers with =evil-number= - Support for additional vim movements via =evil-args= - Support for surrounding the marked area with a given character via =evil-surround= - Evilification of various modes if the editing style is =vim= or =hybrid= - Improves the comment function to be able to also do the inverse operation - Persistent highlight of searched text with =evil-search-highlight-persist= - Display tildes in non-buffer area with =vi-tilde-fringe= - Add =evil-collection= * Install The =spacemacs-evil= layer is included by default in the Spacemacs distribution. * Note about evil-collection [[https://github.com/emacs-evil/evil-collection][evil-collection]] is a collection of Evil bindings for the parts of Emacs that Evil does not cover properly by default, such as help-mode, M-x calendar, Eshell and more. However, there is a large overlap of features provided by both =Spacemacs= and =evil-collection=. For the same feature, =Spacemacs= implementation is often better than =evil-collection=. That's said, when =evil-collection= is used carefully we can reduce the amount of effort wasted on ~reinventing the wheel~ on =Spacemacs= side. Spacemacs provides a layer variable =spacemacs-evil-collection-allowed-list= for users and layer hackers to enable evil-collection on their desired modes. For users, if you want to enable evil-collection on =eglot=, then you will need to declare this layer with it variable explicitly: #+BEGIN_EXAMPLE (spacemacs-evil :variables spacemacs-evil-collection-allowed-list '(eglot)) #+END_EXAMPLE For Spacemacs hackers check out git layer to see how we apply =evil-collection= to =magit.=