Skip to content

Instantly share code, notes, and snippets.

@etasi
Last active August 29, 2015 14:15
Show Gist options
  • Select an option

  • Save etasi/61b38153befc61a793b7 to your computer and use it in GitHub Desktop.

Select an option

Save etasi/61b38153befc61a793b7 to your computer and use it in GitHub Desktop.
VIM: Shortcuts

VIM Keyboard Shortcuts Cheat Sheet

Main

Shortcut Function
Escape Gets out of the current mode into the “command mode”. All keys are bound of commands.
i “Insert mode” for inserting text. Keys behave as expected.
: “Last-line mode” where Vim expects you to enter a command such asto save the document.

Basic Navigation Keys

Shortcut Function
h moves the cursor one character to the left.
j or Ctrl + J moves the cursor down one line.
k or Ctrl + P moves the cursor up one line.
l moves the cursor one character to the right.
0 moves the cursor to the beginning of the line.
$ moves the cursor to the end of the line.
^ moves the cursor to the first non-empty character of the line.
w (lowercase) move forward one word (next alphanumeric word)
W (uppercase) move forward one word (deli
mited by a white space)
5w move forward five words
b (lowercase) move backward one word (previous alphanumeric word)
B (uppercase) move backward one word (delimited by a white space)
5b move backward five words
G move to the end of the file
gg move to the beginning of the file.

Navigating Around the Document

Shortcut Function
( jumps to the previous sentence
) jumps to the next sentence
{ jumps to the previous paragraph
} jumps to the next paragraph
[[ jumps to the previous section
]] jumps to the next section
[ ] jump to the end of the previous section
] [ jump to the end of the next section

Insert Text

Shortcut Function
a (lowercase) Insert text after the cursor
A (uppercase) Insert text at the end of the line
i Insert text before the cursor
o Begin a new line below the cursor
O Begin a new line above the cursor
:r [filename] Insert the file [filename] below the cursor
:r ![command] Execute [command] and insert its output below the cursor

Delete Text

Shortcut Function
x delete character at cursor
dw delete a word.
d0 delete to the beginning of a line.
d$ delete to the end of a line.
d) delete to the end of sentence.
dgg delete to the beginning of the file.
dG delete to the end of the file.
dd delete line
3dd delete three lines

Simple Replace Text

Shortcut Function
r{text} Replace the character under the cursor with {text}
R Replace characters instead of inserting them

####Copy/Paste Text

Shortcut Function
yy copy current line into storage buffer
["x]yy Copy the current lines into register x
p (lowercase) paste storage buffer after current line
P (uppercase) paste storage buffer before current line
["x]p paste from register x after current line
["x]P paste from register x before current line

Undo/Redo Operation

Shortcut Function
u undo the last operation.
Ctrl + r redo the last undo.

Search and Replace keys

Shortcut Function
/searchtext search document for searchtext going forward
?searchtext search document for searchtext going backward
n (lowercase) move to the next instance of the result from the search
N (uppercase) move to the previous instance of the result
:%s/original/replacement Search for the first occurrence of the string “original” and replace it with “replacement”
:%s/original/replacement/g Search and replace all occurrences of the string “original” with “replacement”
:%s/original/replacement/gc Search for all occurrences of the string “original” but ask for confirmation before replacing them with “replacement”

Bookmarks

Shortcut Function
m {a-z A-Z} Set bookmark {a-z A-Z} at the current cursor position
:marks List all bookmarks
`{a-z A-Z} Jumps to the bookmark {a-z A-Z}

Select Text

Shortcut Function
v (lowercase) Enter visual mode per character
V (uppercase) Enter visual mode per line
Esc Exit visual mode

Modify Selected Text

Shortcut Function
~ Switch case
d delete a word.
c change
y yank
> shift right
< shift left
! filter through an external command

Save and Quit

Shortcut Function
:q Quits Vim but fails when file has been changed
:q! Quit Vim without saving the changes to the file.
:cq Quit always, without writing.
:w Save the file
:w new_name Save the file with the new_name filename
:wq Save the file and quit Vim.
:wq! Save the file and quit Vim always.
ZZ Write file, if modified, and quit Vim
ZQ Same as :q! Quits Vim without writing changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment