vimtutor notes
Vim tutor is a great guide to get you started with vim.
Getting Started
To start with Vim Tutor, simply type vimtutor
in your terminal.
The tutorial says it should take about 25 to 30 minutes, but because I was also messing around with writing up this post and including their lesson summaries, all trying to use vim, I spend a bit longer with it.
If you’re running low on time, I’d say do each lesson in a 5 to 10 minute window span each day. You’re allowed to take it slow.
I learned it’s about the journey, not about the speed in which it takes for you to pick it up. It’s there where you can start nitpicking on how to do “x” or “y”.
The next following sections are summaries of what vim tutor teaches you. I modified some of the summaries to best fit markdown format.
Lesson 1 Summary
- The cursor is moved using either the arrow keys or the hjkl keys.
h
(left)j
(down)k
(up)l
(right)
-
To start Vim from the shell prompt type:
vim FILENAME <ENTER>
-
To exit Vim type:
<ESC>
:q!
<ENTER>
to trash all changes. OR type:<ESC>
:wq
<ENTER>
to save the changes. -
To delete the character at the cursor type:
x
-
To insert or append text type:
i
type inserted text<ESC>
insert before the cursorA
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 Summary
-
To delete from the cursor up to the next word type:
dw
-
To delete from the cursor to the end of a line type:
d$
-
To delete a whole line type:
dd
-
To repeat a motion prepend it with a number:
2w
-
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
- Undo & redo actions
- 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 Summary
-
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). -
To replace the character under the cursor, type
r
and then the character you want to have there. -
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. -
The format for change is:
c [number] motion
Lesson 4 Summary
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.
- Find command
- 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.
-
Typing
%
while the cursor is on a ( , ), [, ], {, or } goes to its match. -
Substitute command
- 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 Summary
:!command
executes an external command.
Some useful examples are:
(MS-DOS) | (Unix) | description |
---|---|---|
:!dir | :!ls | shows a directory listing |
:!del FILENAME | :!rm FILENAME | removes file FILENAME |
-
:w FILENAME
writes the current Vim file to disk with name FILENAME. -
v motion :w FILENAME
saves the Visually selected lines in file FILENAME. -
:r FILENAME
retrieves disk file FILENAME and puts it below the cursor position. -
:r !dir
reads the output of the dir command and puts it below the cursor position.
Lesson 6 Summary
- Open a line in insert mode
- Type
o
to open a line BELOW the cursor and start Insert mode. - Type
O
to open a line ABOVE the cursor.
- Append text
- Type
a
to insert text AFTER the cursor. - Type
A
to insert text after the end of the line.
-
The
e
command moves to the end of a word. -
The
y
operator yanks (copies) text,p
puts (pastes) it. -
Typing a capital
R
enters Replace mode until<ESC>
is pressed. -
Typing
:set xxx
sets the optionxxx
. Some options are:
ic
ignorecase
ignore upper/lower case when searchingis
incsearch
show partial matches for a search phrasehls
hlsearch
highlight all matching phrases
You can either use the long or the short option name.
- Prepend
no
to switch an option off::set noic
Lesson 7 Summary
-
Type
:help
or press<F1>
or<Help>
to open a help window. -
Type
:help cmd
to find help on cmd. -
Type
CTRL-W CTRL-W
to jump to another window -
Type
:q
to close the help window -
Create a vimrc startup script to keep your preferred settings.
-
When typing a
:
command, pressCTRL-D
to see possible completions. Press<TAB>
to use one completion.
Post Tutorial Reflection
The tutorial got me through the basics, and only scraps the surface of what you can do with vim. One of the things I found useful after going through this tutorial was saying out loud what the command I was using does.
For example, if I was using the w
command, I would say “word”. If I was going to the word, and I was using the diw
command, I would say “delete instance word”. Using words instead of letters helps with getting the commands down. It’s the same technique I used when learning the bash terminal, e.g. with pwd
, I would say in my head, “print working directory”.
I wrote up a much longer post about vim that I will publish soon.
Written by Jeremy Wong and published on .