vim-visual-multi
It's called vim-visual-multi in analogy with visual-block, but the plugin works mostly from normal mode.
Basic usage:
- select words with Ctrl-N (like
Ctrl-d
in Sublime Text/VS Code) - create cursors vertically with Ctrl-Down/Ctrl-Up
- select one character at a time with Shift-Arrows
- press n/N to get next/previous occurrence
- press [/] to select next/previous cursor
- press q to skip current and get next occurrence
- press Q to remove current cursor/selection
- start insert mode with i,a,I,A
Two main modes:
- in cursor mode commands work as they would in normal mode
- in extend mode commands work as they would in visual mode
- press Tab to switch between «cursor» and «extend» mode
Most vim commands work as expected (motions, r to replace characters, ~ to change case, etc). Additionally you can:
- run macros/ex/normal commands at cursors
- align cursors
- transpose selections
- add patterns with regex, or from visual mode
And more... of course, you can enter insert mode and autocomplete will work.
Installation
With vim-plug:
Plug 'mg979/vim-visual-multi', {'branch': 'master'}
With Vim 8+:
mkdir -p ~/.vim/pack/plugins/start && git clone https://github.com/mg979/vim-visual-multi ~/.vim/pack/plugins/start/vim-visual-multi
Documentation
:help visual-multi
For some specific topic it's often:
:help vm-some-topic
Tutorial
To run the tutorial:
vim -Nu path/to/visual-multi/tutorialrc
Wiki
The wiki was the first documentation for the plugin, but many pictures are outdated and contain wrong mappings. Still, you can take a look.
You could read at least the Quick Start.
Some (sometimes very old) random pics:
Insert mode with autocomplete, alignment (mappings in pic have changed, don't trust them)
Undo/Redo edits and selections
Alternate cursor/extend mode, motions (even %), reverse direction (as in visual mode) and extend from the back. At any time you can switch from extend to cursor mode and viceversa.
Select inside/around brackets/quotes/etc:
Select operator, here shown with 'wellle/targets.vim' plugin: sib, sia, saa + selection shift
Synched column transposition
Unsynched transposition (cycle all regions, also in different lines)
Shift regions left and right (M-S-<>)
Find words under cursor, add new words (patterns stack), navigate regions, skip them, add regions with regex.
Normal/Visual/Ex commands at cursors
Macros. Shorter lines are skipped when adding cursors vertically.
Some editing functions: yank, delete, paste from register, paste block from yanked regions
Case conversion