Home

Vim Essential Commands and Tricks

Master these lesser-known, yet powerful, Vim commands to dramatically speed up your text editing workflow.


1. Quick Exits

Save precious seconds when closing files.

Action Command Description
Save and Quit ZZ Two capital Zs. A quick way to write changes and exit.
Quit without saving ZQ Capital Z, then Q. Quits without saving, similar to :q!.

2. Smart Text Selection & Modification (Inner Blocks)

Use the “inner block” motion (i) combined with block type to quickly target content within delimiters.

Action Command Description
Select inside parentheses () vib visual inner block (or ‘b’ for balanced symbols).
Select inside curly braces {} viB visual inner BRACE (capital B).
Change inside quotes "" ci" change inner quote. Works with '' and \` too.
Change inside parentheses () cib Quickly deletes and puts you in insert mode.

3. Visual Block Mode for Multi-Line Edits

Perform operations on blocks of text across multiple lines.

Action Command Description
Enter Block Mode Ctrl+v Use this before selecting lines.
Insert at Start of Block I While in Visual Block mode, press capital I to insert text that appears on every selected line after pressing Esc.
Append at End of Block A After selecting the block (and pressing $), press capital A to append text to the end of every selected line after pressing Esc.
Re-select Last Block gv Jumps you back into Visual Block mode with the last block selected.

4. Navigation & Structure

Fluidly move around and clean up your code.

Action Command Description
Re-indent the whole file gg=G Go to top (gg), apply auto-indent (=), go to bottom (G).
Jump between matching pairs % Place the cursor on a (, {, [, or similar symbol and jump to its match.
Jump to specific line number 42G Type the line number, then capital G.
Join lines with a space J Capital J joins the current line and the next with one space between them.
Join lines without a space gJ gJ joins the lines without adding a space.

5. Toggle Case

Action Command Description
Toggle character case ~ In Normal mode, toggle the case of the character under the cursor.
Toggle word case g~w Toggle case for the current word.
Toggle case in a tag g~it Toggle case for text inner tag.

6. Sessions, URLs, and Files

Quickly interact with your environment.

Action Command Description
Suspend Vim to terminal Ctrl+z Temporarily pauses Vim and returns you to the shell.
Return Vim to foreground fg Type fg in the terminal to resume your session.
Open URL under cursor gx Opens the web link under the cursor in your default browser.
Open file path under cursor gf Opens the file path under the cursor (if it exists in the Vim path).

7. Advanced Bookmarks (Marks)

Marks allow you to quickly jump between locations.

Action Command Description
Set Mark (Current File) m followed by a lowercase letter (e.g., ma). Mark is only valid within the current file.
Jump to Mark (Current File) ' followed by the lowercase letter (e.g., 'a). Jumps to the marked line and column.
Set Mark (Across Files) m followed by an uppercase letter (e.g., mA). Mark is valid across files and persists until Vim closes.
Jump to Mark (Across Files) ' followed by the uppercase letter (e.g., 'A). Jumps to the correct file and line.
Tags: Vim, Cli, Learning