Vim Cheat Sheet
This page is designed to help you get vim to help you. vim has a long history and a massive number of commands, keyboard shortcuts, and more. This guide brings to you the most commonly used and most useful commands for navigating and editing source code in vim.
Basic Commands
i
⇒ Enter 'input mode', allows you to edit text but you can't run commands
Esc
⇒ Exit 'input mode'/'selection mode' (see v
)
:w
⇒ Save the changes you have on the current file
:q
⇒ Close the current editor window (see the sections below)
:wq
or ZZ
⇒ Save the changes you have on the current file and close the editor window
:q!
⇒ Close the current editor window without saving the open file
:! <command>
⇒ Run <command>
in your current shell (e.g., !make
)
:<number>
or <number>
⇒ go to line <number>
u
⇒ Undo the last change
ctr+r
⇒ Redo the last change the last undo
v
⇒ Start highlighting by character ('selection mode')
V
⇒ Start highlighting by line
y
⇒ Copy current selection
yy
⇒ Copy current line
d
⇒ Delete/Cut current selection
dd
⇒ Delete/Cut current line
p
⇒ Paste the last thing that was cut/copied
P
⇒ Paste the last thing that was cut/copied before the cursor
Searching in Files
/<regular expression>
⇒ Search for occurrences of
<regular expressions>
n
⇒ Go to the next occurrence of the search term
N
⇒ Go to the previous occurrence of the search team
:noh
⇒ Stop highlighting ocurrences of the current search term
Editing Multiple Files
:e <filename>
⇒ Open <filename>
in the current window
:sp <filename>
⇒ Split the current window in two,
horizontally, and open <filename>
in the new window
:vsp <filename>
⇒ Split the current window in two,
vertically, and open <filename>
in the new window
Moving Between Windows
ctr+w ctr+w
⇒ Move clockwise to the next window
ctr+w →
or ctr+w l
⇒ Move to the
window to the right of the current one
ctr+w ↑
or ctr+w k
⇒ Move to the
window above the current one
ctr+w ←
or ctr+w h
⇒ Move to the
window to the left of the current one
ctr+w ↓
or ctr+w j
⇒ Move to the
window below the current one
Rearrranging Windows
ctr+w x
⇒ Exchange the current window with the next one
in the current row/column
ctr+w L
⇒ Move the current window to occupy the right
side of the screen
ctr+w K
⇒ Move the current window to occuppy the top
of the screen
ctr+w H
⇒ Move the current window to occupy the left
side of the screen
ctr+w J
⇒ Move the current window to occupy the bottom
of the screen
Resizing Windows
ctr+w =
⇒ Have all windows take up an equal space of
their row/column
<number> ctr+w +
⇒ Increase window height by
<number>
<number> ctr+w —
⇒ Decrease window height by
<number>
<number> ctr+w >
⇒ Increase window width by
<number>
<number> ctr+w <
⇒ Decrease window width by
<number>