#+TITLE: spacemacs-editing layer #+TAGS: layer|misc|spacemacs * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#customization][Customization]] - [[#undo-region][Undo Region]] * Description This layer adds packages to improve editing with Spacemacs. ** Features: - Support for automatic indentation of code via [[https://github.com/Malabarba/aggressive-indent-mode][=aggressive-indent=]]. - Support for jumping to chars using a decision tree via [[https://github.com/abo-abo/avy][=avy=]]. - Improvements for evaluating sexps via [[https://github.com/hchbaw/eval-sexp-fu.el/tree/36d2fe3bcf602e15ca10a7f487da103515ef391a][=eval-sexp-fu=]]. - Selecting and editing of multiple text elements via [[https://github.com/magnars/expand-region.el][=expand-region=]]. - Support for editing files in hex format via [[https://github.com/emacs-mirror/emacs/blob/master/lisp/hexl.el][=hexl=]]. - Deletion of consecutive horizontal whitespace with a single key via [[https://github.com/nflath/hungry-delete][=hungry-delete=]]. - Support for selecting, copying and opening links using [[https://github.com/abo-abo/avy][=avy=]] via [[https://github.com/noctuid/link-hint.el][=link-hint=]]. - Adding of sample text via [[https://github.com/jschaf/emacs-lorem-ipsum][=lorem-ipsum=]]. - Transient state for moving text via [[https://github.com/emacsfodder/move-text][=move-text=]]. - Support for folding of code via [[https://github.com/gregsexton/origami.el][=origami=]] and [[https://github.com/alexmurray/evil-vimish-fold][=evil-vimish-fold=]]. - Support for password generation via [[https://github.com/vandrlexay/emacs-password-genarator][=password-generator=]]. - Support for improving parenthesis handling via [[https://github.com/Fuco1/smartparens][=smartparens=]]. - Automatic whitespace cleanup on save via =spacemacs-whitespace-cleanup=. - Support for converting definitions to certain styles via [[https://github.com/akicho8/string-inflection][=string-inflection=]]. - Support for generating UUIDs via [[https://github.com/kanru/uuidgen-el][=uuidgen=]]. - Support for conversion between Emacs regexps and PCRE regexps. - Support for persistent scratch via [[https://github.com/Fanael/persistent-scratch][=persistent-scratch=]]. - Support for unkillable scratch via [[https://github.com/EricCrosson/unkillable-scratch][=unkillable-scratch=]]. - Support for sorting (press ~s~) via [[https://gitlab.com/xuhdev/dired-quick-sort][=dired-quick-sort=]] - Support for [[https://github.com/PythonNut/evil-easymotion][=evil-easymotion=]] if the editing style is =vim= or =hybrid=. - Support for cycling between multi line block styles via [[https://github.com/IvanMalison/multi-line/][=multi-line=]]. - Support for editing strings inplace via [[https://github.com/magnars/string-edit.el][=string-edit=]] - Presents undo history as a tree via [[https://gitlab.com/tsc25/undo-tree/-/blob/master/undo-tree.el][=undo-tree=]] * Customization ** Undo Region In normal state, ~u~ is bound to =evil-undo= which undo changes in the buffer. Emacs's builtin =undo= command in addition has the ability to undo changes in a selected region. But by default in visual state, ~u~ is bound to =evil-downcase= which downcases the selected text. You can bound =undo= to ~u~ in visual state, by setting the variable =vim-style-enable-undo-region= to =t= in your =~/.spacemacs=. #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((spacemacs-editing :variables vim-style-enable-undo-region t))) #+END_SRC