Back

Vim Cheatsheet

Getting started

vim file # Open file. vim file1 file2 # Open file1 and file2 vim -R file # Open file in read mode view file # Open file in read mode :h[elp] keyword # Open help for the keyword :term # Open a terminal :! cmd # Execute shell command cmd C-\ C-n # Go to command mode in the built-in terminal ESC # Exit insert mode :q # Close document if no modification has been done :w # Save the document :wa # Save all windows :wq # Save and close :x # Save and close, equivalent to wq :q! # Close and ignore changes :set spell # Start the spell checking :set cc=100 # Creates a vertical line at character 100 (cc=colorcolumn)

Navigation

h # Left j # Down k # Up l # Right 0 # Move cursor to the beggining of the line $ # Move cursor to the end of the line ^ # Move cursor to the first non-blank character w # Move forward one word W # Move forward one word (ignore punctuation) b # Move backward one word B # Move backward one word (ignore punctuation) e # Move forward to the end of the word E # Move forward to the end of the word (ignore punctuation) gg # Move the first line of the document G # Move the last line of the document H # Go to the first character on the top M # Go to the first character on the middle L # Go to the first character on the bottom C-F # Scroll forward one page C-B # Scroll backward one page C-D # Scroll forward half page C-U # Scroll backward half page ( # Go to the beginning of the sentence ) # Go to the beginning of the next sentence { # Go to the beginning of the paragraph } # Go to the beginning of the next paragraph [[ # Go to the beginning of the section ]] # Go to the beginning of the next section

If we consider the notation _nh_, where _n_ is a number known as _replication factor_, the left motion is repeated _n_ times. As an example, we have the equivalence: _4h = hhhh_. The same is true for _j_, _k_ and _l_.

If we write _nG_, where _n_, the cursor goes to line _n_. The same is true for the other motions. Then, 1G is equivalent to gg.

Editing

i # Insert cursor goes to the beginning of the block cursor I # Insert cursor goes to the beginning of the line 0i # Insert cursor goes to the beginning of the line. a # Append cursor goes to the end of the block cursor A # Append cursor goes to the end of the line $a # Append - the insert cursor goes to the end of the line o # Text line after the cursor O # Text line before the cursor cw # Change word ciw # Change word under cursor c$ # Change text to the end of the line C # Change text to the end of the line. Equivalent to c$ c0 # Change text starting from the beggining of the line cc # Change the entire line r # Replace a single character R # Replace characters. Overstrike. s # Substitute character. Enters in Insert mode S # Substitute the whole line. Similar to C ~ # Change case: lowercase to uppercase and vice-versa dw # Delete a word starting from the cursor position diw # Delete word under cursor dd # Delete the line D # Delete the line. Equivalent to dd d0 # Delete from cursor to the beggining of the line d$ # Delete from the cursor position to the end of the line x # Delete a single character under the cursor X # Delete a single character in front of the cursor u # Undo recent modification C-r # Redo U # Retores the line . # Repeat the last command J # Join the cursor line with the line below it gq # Format paragraph gwip # Reflow paragraph

When we delete a character, word or line, vim saves the deleted object in a temporary register, so we can recover this deletion as long as we do not delete any other object. We have seen that we undo this deletion with the command _u_. It also true that we can paste the deleted object in a new place. Let us take a look on these commands.

Copy and Paste

yw # Yank (Copy) word yy # Yank the whole line Y # Yank the whole line. Equivalent to yy y$ # Yank to the end of the line y0 # Yank to the beginning of the line p # Paste after the cursor P # Paste before the cursor "+y # Yank into the system clipboard "+p # Paste from the system clipboard

Search

/pattern # Search pattern forward ?pattern # Search pattern backward n # Repeat search in the same direction N # Repeat search in the opposite direction / # Repeat search forward ? # Repeat search backward