How do I navigate quickfix and location list entries with intuitive bracket mappings?
The vim-unimpaired plugin by Tim Pope provides bracket-pair mappings for navigating quickfix and location list entries: [q moves to the previous entry and ]q mo
category:
plugins
tags:
#plugins
#navigation
#quickfix
How do I make Vim preserve the cursor column when jumping between lines?
By default, many Vim movement commands — gg, G, Ctrl-d, Ctrl-u, Ctrl-f, Ctrl-b, and others — snap the cursor to the first non-blank character of the destina
category:
config
tags:
#navigation
#config
#motions
#normal-mode
How do I use normal regex syntax in Vim search without escaping everything?
Vim's default regex syntax requires backslashes before most special characters like +, (, ), {, and , which is the opposite of what most developers expect from
category:
search
tags:
#search
#regex
#ex-commands
#productivity
#patterns
How do I resize split windows using the keyboard in Vim?
<C-w>+ / <C-w>- / <C-w>> / <C-w><
Vim provides keyboard shortcuts to resize split windows without reaching for the mouse.
category:
buffers-windows
tags:
#windows
#buffers
#navigation
How do I programmatically simulate keypresses in Vim?
:call feedkeys("iHello\<Esc>", 'n')
The feedkeys() function injects keystrokes into Vim's input buffer as if the user typed them.
category:
command-line
tags:
#command-line
#feedkeys
#automation
#scripting
How do I make Vim transparently edit .gz files using built-in tooling?
Compressed logs and artifacts often appear in debugging workflows, and repeatedly shelling out to decompress and recompress wastes time.
category:
plugins
tags:
#plugins
#files
#command-line
#workflow
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 set different Vim options for specific programming languages?
autocmd FileType python setlocal ts=4 sw=4 et
Using autocmd FileType, you can configure Vim to automatically apply buffer-local settings whenever a file of a particular type is opened.
category:
config
tags:
#config
#ex-commands
#editing
#formatting
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 hide the command line area in Neovim to gain an extra line of screen space?
Setting cmdheight=0 in Neovim 0.
category:
config
tags:
#config
#neovim
#ui
#screen
How do I delete the content inside an HTML tag?
The dit command deletes the text inside the nearest enclosing HTML or XML tag pair without removing the tags themselves.
category:
editing
tags:
#editing
#text-objects
#delete
#normal-mode
How do I delete the word before the cursor without leaving insert mode?
Pressing in insert mode deletes the word before the cursor instantly, without requiring you to switch to normal mode.
category:
editing
tags:
#editing
#insert-mode
#delete
#productivity
How do I switch from the active command line into the command-line window to edit the command with full Vim power?
Pressing while you are already typing in the Vim command line (:), search line (/ or ?), or input prompt switches you into the command-line window with the curr
category:
command-line
tags:
#command-line
#ex-commands
#editing
#normal-mode
How do I find out what is making Vim slow to start up?
vim --startuptime /tmp/vim-startup.log
When Vim takes too long to start, the --startuptime flag writes a detailed timing log showing exactly how long each plugin, script, and initialization step take
category:
config
tags:
#config
#debugging
#performance
#ex-commands
How do I jump to the local or global declaration of the variable under the cursor without ctags?
Vim's gd and gD commands jump to the declaration of the identifier under the cursor by searching upward through the file — no ctags setup required.
category:
navigation
tags:
#navigation
#editing
#normal-mode
How do I visually hide or conceal matched text in Vim?
:syntax match Conceal /pattern/ conceal
Vim's conceal feature lets you visually hide text that matches a pattern, or replace it with a single character.
category:
search
tags:
#search
#syntax
#conceal
#display
How do I use count prefixes to amplify motions and operators in Vim?
Almost every Vim motion and operator accepts a numeric count prefix that repeats or amplifies the action.
category:
navigation
tags:
#navigation
#motions
#count
#operators
How do I include spell-checked words as completion candidates in Vim insert mode?
Adding kspell to the complete option makes and draw from the active spell word list — every word Vim considers correctly spelled.
category:
config
tags:
#completion
#insert-mode
#spell
#config
#editing
How do I make all split windows the same size?
The = (Ctrl+w then =) command resizes all open split windows so they have equal width and height.
category:
buffers-windows
tags:
#buffers-windows
#normal-mode
How do I make Vim sessions save global variables?
:set sessionoptions+=globals
By default, :mksession restores windows, buffers, and many editor states, but it skips most global variables.
category:
config
tags:
#config
#sessions
#options
#workflow