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.
With vim-plug:
Plug "mg979/vim-visual-multi", {'branch': 'master'}
:help visual-multi
To run the tutorial:
vim -Nu path/to/visual-multi/tutorialrc
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
Single region mode in insert mode, Tab
moves to the next cursor
Synched column transposition
Unsynched transposition (cycle all regions, also in different lines)
Shift regions left and right (M-S-<>)
Independent anchoring
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 above/below.
Some editing functions: yank, delete, paste from register, paste block from yanked regions
Case conversion