How do I run a substitution only within the exact columns of a visual selection, not the whole line?
:'<,'>s/\%Vpattern/replacement/g
When you press : after making a visual selection, Vim inserts ' to restrict the substitution to the selected lines.
category:
visual-mode
tags:
#visual-mode
#search
#editing
#ex-commands
#normal-mode
How do I reflow and hard-wrap a paragraph or selected lines to a fixed width in Vim?
Pressing gq on a visual selection reformats the selected lines to hard-wrap at textwidth columns.
category:
visual-mode
tags:
#visual-mode
#editing
#formatting
How do I run a substitution only within the exact characters of my visual selection?
:%s/\%Vpattern/replacement/g
The \%V atom restricts a regex match to the last visual selection — more precisely than :'s/.
category:
search
tags:
#search
#visual-mode
#ex-commands
#normal-mode
How do I adjust the width of a visual block selection without restarting it?
In visual block mode (), pressing O (uppercase) moves your cursor to the other end of the current line — letting you expand or contract the block's horizontal
category:
visual-mode
tags:
#visual-mode
#visual-block
#selection
#editing
How do I reindent a block of code using a visual selection?
After making a visual selection, pressing = applies Vim's auto-indent to every selected line at once.
category:
visual-mode
tags:
#visual-mode
#indentation
#editing
#formatting
How do I apply a recorded macro to every line in a visual selection?
Combining :normal with a visual range lets you replay a macro on each line of a selection individually — far more targeted than recursive macros or @@ repeati
category:
macros
tags:
#macros
#ex-commands
#normal-mode
#visual-mode
How do I sort lines based on a specific field or column rather than the beginning of each line?
The :sort /pattern/ command sorts lines by the text that appears after the first match of a pattern, not from the start of each line.
category:
command-line
tags:
#ex-commands
#editing
#visual-mode
How do I run a normal mode command on every line in a visual selection?
After making a visual selection, :norm {commands} executes normal-mode keystrokes on every line in the range.
category:
visual-mode
tags:
#visual-mode
#editing
#ex-commands
#normal-mode
How do I replace a visual selection with yanked text in Vim?
In visual mode, pressing p replaces the selected text with the contents of the default register.
category:
visual-mode
tags:
#visual-mode
#editing
#registers
#normal-mode
How do I search for an exact multi-word phrase or special text I've selected?
In normal mode, searches for the word under the cursor with word-boundary anchors.
category:
search
tags:
#search
#visual-mode
#navigation
How do I paste over a visual selection without losing my yanked text?
When you paste over a visual selection using p (lowercase), Vim replaces the selection with your register contents — but the replaced text overwrites your unn
category:
visual-mode
tags:
#visual-mode
#registers
#paste
#editing
How do I move the cursor to the other end of a visual selection without restarting it?
In visual mode, pressing o swaps the cursor between the two ends of the selection (the anchor and the free end).
category:
visual-mode
tags:
#visual-mode
#navigation
#editing
How do I switch between visual mode and select mode in Vim?
Vim has a lesser-known select mode that behaves like selection in typical GUI editors: any typed character replaces the selection.
category:
visual-mode
tags:
#visual-mode
#select-mode
#editing
#normal-mode
How do I expand or shrink a visual selection based on the syntax tree using Treesitter?
Neovim's nvim-treesitter plugin provides incremental selection based on the abstract syntax tree (AST) of your code.
category:
plugins
tags:
#visual-mode
#plugins
#editing
#navigation
How do I change the case of a specific column of text using visual block mode?
Visual block mode lets you select rectangular regions of text, which means you can target a specific column and apply case changes only to that area.
category:
visual-mode
tags:
#visual-mode
#editing
#text-objects
#formatting
How do I turn a visual selection of lines into a numbered list?
:s/^/\=line('.') - line("'<") + 1 . '. '/
When you need to quickly number a set of lines — such as TODO items, steps, or bullet points — you can use a visual selection combined with a substitution e
category:
visual-mode
tags:
#visual-mode
#editing
#ex-commands
#formatting
#substitute
How do I move the cursor to the other end of a visual selection to adjust it?
When you start a visual selection, the cursor is at one end and the anchor is at the other.
category:
visual-mode
tags:
#visual-mode
#navigation
#editing
#motions
How do I align columns of text into a neatly formatted table in Vim?
When working with data that has uneven spacing — such as variable assignments, CSV-like data, or configuration entries — you can select the lines and pipe t
category:
visual-mode
tags:
#visual-mode
#editing
#formatting
#external-command
#alignment
How do I switch between character, line, and block visual selection without reselecting?
v / V / <C-v> (while in visual mode)
When you are already in visual mode and realize you need a different selection type, you do not have to exit and re-enter.
category:
visual-mode
tags:
#visual-mode
#editing
#normal-mode
How do I reformat a paragraph or visual selection to fit a specific line width?
The gq operator reformats text to fit within your configured textwidth.
category:
visual-mode
tags:
#visual-mode
#formatting
#editing
#text-objects