0% found this document useful (0 votes)
525 views

15-131: Great Practical Ideas For Computer Scientists Vim Cheat Sheet

This document provides a cheat sheet for using the Vim text editor. It summarizes key navigation commands like h, j, k, l to move left, down, up, right. It also covers modes, editing commands like i (insert), copying/pasting with y (yank) and p (paste), searching with /, replacing with :s, and other useful tricks. Resources for learning more about Vim like its online manual and StackOverflow are listed at the end.

Uploaded by

Good Man
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
525 views

15-131: Great Practical Ideas For Computer Scientists Vim Cheat Sheet

This document provides a cheat sheet for using the Vim text editor. It summarizes key navigation commands like h, j, k, l to move left, down, up, right. It also covers modes, editing commands like i (insert), copying/pasting with y (yank) and p (paste), searching with /, replacing with :s, and other useful tricks. Resources for learning more about Vim like its online manual and StackOverflow are listed at the end.

Uploaded by

Good Man
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

15-131 : Great Practical Ideas for Computer Scientists

vim cheat sheet Allison McKnight ([email protected])

Navigation Mode switching


i Enter insert mode
h Move left H Top line on screen : Enter command mode
j Move down M Middle line on screen R Enter replace mode
k Move up L Bottom line on screen v Enter visual mode (highlighting)
l Move right V Enter visual line mode (highlighting lines)
10j Move down 10 lines esc Return to normal mode from insert or replace mode
esc+esc Return to normal mode from command or visual mode
gg First line of the file e The end of the current word
G Last line of the file b Beginning of current word
:20 Line 20 of the file w Beginning of next word
Copy/pasting
Within vim
0 Beginning of current line y Yank
^ First non-whitespace character of current line c ‘Change’; cut and enter insert mode
$ End of current line C Change the rest of the current line
% Move to matching parenthesis, bracket or brace d Delete; cut but remain in normal mode
D Delete the rest of the current line
p Paste after the cursor
The left, right, up and down arrow keys can also be used to navigate. P Paste before the cursor
x Delete characters after the cursor
X Delete characters before the cursor

Copy/paste commands operate on the specified range. If in visual mode, that range is the
Editing highlighted text. If in normal mode, that range is specified by a series of modifiers to the
commands:
i Insert before current character
cw Change one word
a Insert after current character
c4w Change four words
I Insert at the first non-whitespace character of the line
c4l Change four letters
o Insert a line below the current line, then enter insert mode
cc Change current line
O Insert a line above the current line, then enter insert mode
4x Change four characters after the cursor
r Overwrite one character and return to command mode
4p Paste five times after the cursor.
U Undo
Ctrl+R Redo Modifiers work similarly for cut, delete, yank and paste.

From system clipboard


Opening, closing and saving files :set paste Enter paste mode
:set nopaste Exit paste mode
:w Save the current file Ctrl+Shift+V Paste into file, if in paste mode; Command+Shift+V for Mac
:wq Save the current file and close it; exits vim if no open files remain
:w newname Save a copy of the current file as ‘newname,’ but continue editing the original
file
:sav newname Save a copy of the current file as ‘newname’ and continue editing the file
‘newname’
:q! Close a file without saving
:e somefile Opens file in the current buffer
:x Write any changes to the file and close the file
Replace Search
* Find the next instance of the current word
:s/foo/bar/ Replace the first occurrence of foo on the current line with # Find the previous instance of the current word
bar n Find the next instance of the word being searched for, in the direction specified by
:[range]s/foo/bar/[flags] Replace foo with bar in range according to flags the last use of {*,#}
N Find the previous instance of the word being searched for, in the direction specified
Ranges by the last use of {*,#}
/word Find the next occurrence of ‘word’
% The entire file /word\c Find the next occurrence of ‘word’, ignoring case (‘\c’ can appear anywhere in the
’<,’> The current selection; the default range while in visual mode sequence being searched for)
25 Line 25 /\<word\> Find the next occurrence of the word ‘word’, where ‘word’ is bounded by word
25,50 Lines 25-50 boundaries (ex. space, dash)
$ Last line; can be combined with other lines as in ‘50,$’ :noh Un-highlight words
. Current line; can be combined with other lines as in ‘.,50’
,+2 The current lines and the two lines therebelow
-2, The current line and the two lines thereabove
Handy tricks
~ Toggle case of character beneath the cursor
xp Transpose current character with that to its right
Flags J Join the current line and the line beneath it
:Ni! Receive inquiry about shrubberies
g Replace all occurrences on the specified line(s)
:help View vim help file
i Ignore case
:help foo View vim help entry on ‘foo’
c Confirm each substitution

Regular expressions Resources (other than google.com)


http://www.arl.wustl.edu/~fredk/Courses/Docs/vim/
Both vim’s find and replace functions accept regular expressions. By default, vim assumes The vim manual, online.
that some characters are part of a regular expression and these characters must be escaped http://www.stackoverflow.com/
with ‘\’ to be searched for literally; these characters include (, ), *, ., ^, $. Other Good general-purpose programming questions site.
regular expression patterns are interpreted literally by default and must be escaped to be used http://vim.wikia.com/
as a part of a regular expression; these include +. A wiki dedicated to vim.

You might also like