NOTE: As you go through this tutor, do not try to memorize, learn by usage.
👀
Vimtutor Summaries
Seven-ish years into using Vim, I selectively forget basic movements all the time. Here are the summaries from the Vimtutor lessons:
Lesson 1
1. The cursor is moved using either the arrow keys or the hjkl keys.
h (left) j (down) k (up) l (right)
2. To start Vim from the shell prompt type: vim FILENAME <ENTER>
3. To exit Vim type: <ESC> :q! <ENTER> to trash all changes.
OR type: <ESC> :wq <ENTER> to save the changes.
4. To delete the character at the cursor type: x
5. To insert or append text type:
i type inserted text <ESC> insert before the cursor
A type appended text <ESC> append after the line
NOTE: Pressing <ESC> will place you in Normal mode or will cancel
an unwanted and partially completed command.
Lesson 2
1. To delete from the cursor up to the next word type: dw
2. To delete from the cursor to the end of a line type: d$
3. To delete a whole line type: dd
4. To repeat a motion prepend it with a number: 2w
5. The format for a change command is:
operator [number] motion
where:
operator - is what to do, such as d for delete
[number] - is an optional count to repeat the motion
motion - moves over the text to operate on, such as w (word),
$ (to the end of line), etc.
6. To move to the start of the line use a zero: 0
7. To undo previous actions, type: u (lowercase u)
To undo all the changes on a line, type: U (capital U)
To undo the undo's, type: CTRL-R
Lesson 3
1. To put back text that has just been deleted, type p . This puts the
deleted text AFTER the cursor (if a line was deleted it will go on the
line below the cursor).
2. To replace the character under the cursor, type r and then the
character you want to have there.
3. The change operator allows you to change from the cursor to where the
motion takes you. eg. Type ce to change from the cursor to the end of
the word, c$ to change to the end of a line.
4. The format for change is:
c [number] motion
Lesson 4
1. CTRL-G displays your location in the file and the file status.
G moves to the end of the file.
number G moves to that line number.
gg moves to the first line.
2. Typing / followed by a phrase searches FORWARD for the phrase.
Typing ? followed by a phrase searches BACKWARD for the phrase.
After a search type n to find the next occurrence in the same direction
or N to search in the opposite direction.
CTRL-O takes you back to older positions, CTRL-I to newer positions.
3. Typing % while the cursor is on a (,),[,],{, or } goes to its match.
4. To substitute new for the first old in a line type :s/old/new
To substitute new for all 'old's on a line type :s/old/new/g
To substitute phrases between two line #'s type :#,#s/old/new/g
To substitute all occurrences in the file type :%s/old/new/g
To ask for confirmation each time add 'c' :%s/old/new/gc
Lesson 5
1. :!command executes an external command.
Some useful examples are:
(Windows) (Unix)
:!dir :!ls - shows a directory listing.
:!del FILENAME :!rm FILENAME - removes file FILENAME.
2. :w FILENAME writes the current Vim file to disk with name FILENAME.
3. v motion :w FILENAME saves the Visually selected lines in file
FILENAME.
4. :r FILENAME retrieves disk file FILENAME and puts it below the
cursor position.
5. :r !dir reads the output of the dir command and puts it below the
cursor position.
Lesson 6
1. Type o to open a line BELOW the cursor and start Insert mode.
Type O to open a line ABOVE the cursor.
2. Type a to insert text AFTER the cursor.
Type A to insert text after the end of the line.
3. The e command moves to the end of a word.
4. The y operator yanks (copies) text, p puts (pastes) it.
5. Typing a capital R enters Replace mode until <ESC> is pressed.
6. Typing ":set xxx" sets the option "xxx". Some options are:
'ic' 'ignorecase' ignore upper/lower case when searching
'is' 'incsearch' show partial matches for a search phrase
'hls' 'hlsearch' highlight all matching phrases
You can either use the long or the short option name.
7. Prepend "no" to switch an option off: :set noic
Lesson 7
1. Type :help or press <F1> or <HELP> to open a help window.
2. Type :help cmd to find help on cmd .
3. Type CTRL-W CTRL-W to jump to another window.
4. Type :q to close the help window.
5. Create a vimrc startup script to keep your preferred settings.
6. When typing a : command, press CTRL-D to see possible completions.
Press <TAB> to use one completion.
Buffers
:buffers
- List all buffers:b filename
- Open file buffer:e filename
- Open file, or buffer if already open:bn
- Next buffer:bp
- Previous buffer:b#
- Go to #th buffer, where#
is an integer
Windows
CTRL-W
h
/j
/k
/l
- Move between windowsCTRL-W
v
- Create vertical window splitCTRL-W
s
- Create horizontal window splitCTRL-W
c
- Close window:q
- Close window:qa
- Close all windows
Tabs
:tabnew
- Create new tab:tabc
- Close tab:tabn
- Next tab:tabp
- Previous tabgt
- Next tabgT
- Previous tab#gt
Go to #th tab, where#
is an integer
Movements
h
/j
/k
/l
- Character movementw
/W
- Beginning of next word / WORDe
/E
- End of next word / WORDb
/B
- Beginning of previous word / WORDge
/gE
- End of previous word / WORD0
/^
- First character / non-blank character$
/g_
- Last character / non-blank character(
/)
- Previous / next sentence{
/}
- Previous / next paragraphgg
/G
- First / last lines in file#G
- #th line#%
- #th of fileH
/M
/L
- Top / middle / bottom of screen
Scrolling
zt
/zz
/zb
- Current line to top / middle / bottom of screenCTRL-Y
/CTRL-E
- Up / down one lineCTRL-U
/CTRL-D
- Up / down half a pageCTRL-B
/CTRL-F
- Up / down a page