How do I run a find-and-replace across multiple files at once using the argument list?
:args **/*.py | argdo %s/old/new/ge | update
Combining :args, :argdo, and :update gives you a powerful in-editor multi-file search and replace without leaving Vim.
category:
command-line
tags:
#ex-commands
#editing
#macros
#search
How do I configure Vim to share the clipboard with my system?
:set clipboard=unnamedplus
Setting clipboard=unnamedplus makes Vim's default yank and paste use the system clipboard.
category:
config
tags:
#config
#clipboard
#system-integration
#vimrc
How do I load plugins without a plugin manager using Vim's built-in package system?
Since Vim 8 and Neovim, Vim has a built-in package system that can load plugins directly from the filesystem — no external plugin manager required.
category:
plugins
tags:
#plugins
#config
#ex-commands
How do I add custom markers or icons in Vim's sign column next to specific lines without any plugins?
:sign define and :sign place
Vim's built-in sign system lets you define custom symbols and place them in the sign column — the narrow gutter to the left of line numbers.
category:
command-line
tags:
#command-line
#ex-commands
#vimscript
How do I browse and edit my backward search history in a full Vim buffer?
Vim provides three command-line history windows accessible from normal mode: q: for Ex commands, q/ for forward searches, and q? for backward searches.
category:
search
tags:
#search
#command-line
#navigation
How do I list all open buffers in Vim?
The :ls command displays a list of all open buffers in Vim, showing their buffer number, status indicators, file name, and the line the cursor was last on.
category:
buffers-windows
tags:
#buffers
#ex-commands
#navigation
How do I cycle through the numbered delete registers using the dot command?
When you paste from a numbered register with "1p, Vim's dot command (.
category:
registers
tags:
#registers
#editing
#normal-mode
#undo-redo
How do I insert special characters like ©, ±, or → without leaving Vim?
Vim has a built-in digraph system that lets you insert hundreds of special characters by typing two-character mnemonics.
category:
editing
tags:
#editing
#insert-mode
#special-characters
#unicode
#productivity
How do I control exactly where a new split window appears in Vim?
By default, Vim places horizontal splits below and vertical splits to the right (controlled by splitbelow and splitright).
category:
buffers-windows
tags:
#buffers
#windows
#ex-commands
#splits
How do I open a file under the cursor in a new split and jump to its line number in Vim?
F opens the filename under the cursor in a new horizontal split window and jumps to the line number that follows the filename.
category:
buffers-windows
tags:
#navigation
#buffers-windows
#windows
#editing
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 control when Vim automatically wraps text or continues comment markers with formatoptions?
The formatoptions setting is a string of single-character flags that governs Vim's automatic text formatting: when lines wrap, whether comment syntax continues
category:
config
tags:
#config
#formatting
#ex-commands
#indentation
How do I select, delete, or change a complete sentence using Vim's sentence text objects?
Vim defines sentence text objects — as (around sentence) and is (inner sentence) — that allow any operator to act on an entire sentence in one motion.
category:
editing
tags:
#text-objects
#editing
#normal-mode
#sentences
How do I trigger an autocommand action after the cursor has been idle for a set period?
The CursorHold autocommand event fires once whenever the cursor has been motionless in normal mode for updatetime milliseconds.
category:
config
tags:
#config
#autocommands
#events
#insert-mode
How do I insert a Unicode character by its code point in Vim?
In insert mode, followed by u and a 4-digit hex code inserts the Unicode character with that code point.
category:
editing
tags:
#editing
#unicode
#insert-mode
#special-characters
How do I run a substitution across multiple files using Vim's argument list?
:argdo {cmd} executes an Ex command against every file in the argument list—the set of files you opened Vim with or set explicitly with :args.
category:
command-line
tags:
#command-line
#ex-commands
#editing
#buffers
How do I edit a complex Ex command in a full editing window?
q: or <C-f> from : prompt
The command-line window (q:) opens a full Vim buffer containing your Ex command history.
category:
command-line
tags:
#command-line
#history
#editing
#workflow
How do I open the command-line window mid-command to edit it with full Vim capabilities?
<C-f> (in command-line mode)
When you're already on the Vim command line and realize you need complex edits — inserting text from multiple positions, reordering arguments, or referencing
category:
command-line
tags:
#command-line
#ex-commands
#editing
How do I paste a register literally in insert mode without triggering auto-indent or special key handling?
When you press x in insert mode to paste a register, Vim inserts the text "as if you typed it" — meaning autoindent, textwidth, and other insert behaviors can
category:
registers
tags:
#registers
#insert-mode
#editing
How do I use the leader key to create my own keyboard shortcuts?
let mapleader = ' ' then nnoremap <leader>key command
The leader key is a configurable prefix for your custom key mappings.
category:
config
tags:
#config
#mappings
#vimrc
#leader
#workflow