# iedit contribution layer for Spacemacs **Table of Contents** - [iedit contribution layer for Spacemacs](#iedit-contribution-layer-for-spacemacs) - [Install](#install) - [Key bindings](#key-bindings) - [State transitions](#state-transitions) - [In iedit state](#in-iedit-state) - [In iedit-insert state](#in-iedit-insert-state) - [Examples](#examples) This layer replaces [auto-highlight-symbol][] back end by [iedit][]. It comes with two new evil states: - iedit state - iedit-insert state These states color code is `red`. It has also a nice integration with [expand-region][] for quick edit of the current selected text by pressing e. ## Install To use this contribution add it to your `~/.spacemacs` ```elisp (setq-default dotspacemacs-configuration-layers '(iedit) "List of contribution to load." ) ``` ## Key bindings ### State transitions Key Binding | From | To -------------------|:------------------:|:-------------------------: SPC s e | normal or visual | iedit e | expand-region | iedit ESC | iedit | normal C-g | iedit | normal fd | iedit | normal ESC | iedit-insert | iedit C-g | iedit-insert | normal fd | iedit-insert | normal To sum-up, in `iedit-insert state` you have to press ESC twice to go back to the `normal state`. You can also at any time press C-g or fd to return to `normal state`. **Note:** evil commands which switch to `insert state` will switch in `iedit-insert state`. ### In iedit state `iedit state` inherits from `normal state`, the following key bindings are specific to `iedit state`. Key Binding | Description ------------------|------------------------------------------------------------ ESC | go back to `normal state` TAB | toggle current occurrence 0 | go to the beginning of the current occurrence $ | go to the end of the current occurrence # | prefix all occurrences with an increasing number (SPC u to choose the starting number). A | go to the end of the current occurrence and switch to `iedit-insert state` D | delete the occurrences F | restrict the scope to the function gg | go to first occurrence G | go to last occurrence I | go to the beginning of the current occurrence and switch to `iedit-insert state` J | increase the edition scope by one line below K | increase the edition scope by one line above L | restrict the scope to the current line n | go to next occurrence N | go to previous occurrence p | replace occurrences with last yanked (copied) text S | (substitute) delete the occurrences and switch to `iedit-insert state` V | toggle visibility of lines with no occurrence U | Up-case the occurrences C-U | down-case the occurrences **Note:** 0, $, A and I have the default Vim behavior when used outside of an occurrence. ### In iedit-insert state Key Binding | Description ---------------------------|------------------------------------------------------------ ESC | go back to `iedit state` C-g | go back to `normal state` ## Examples - manual selection of several words then replace: v w w SPC s e S "toto" ESC ESC - append text to a word on two lines: v i w SPC s e J i "toto" ESC ESC - substitute symbol _with expand-region_: SPC v v e S "toto" ESC ESC - replace symbol with yanked (copied) text _with expand region_: SPC v e p ESC ESC [auto-highlight-symbol]: https://github.com/gennad/auto-highlight-symbol [iedit]: https://github.com/tsdh/iedit [expand-region]: https://github.com/magnars/expand-region.el