In Insert / Visual / Command mode, press Escape to switch back to
Normal mode
Moves
=====
Direction Next word {Char}acter
--------- --------- -----------
up word backward find till
left l w e b ---> f{char} t{char}
h k end <--- F{char} T{char}
j right
down W.rd Ba<kward place go to
W E B mark mark
E\d m{a-z} `{a-z}
go to screen go to line
------------ ----------
start middle end bar number middle last
g0 gm g$ {num}| {num}G gM G
Cut, yank, put
==============
x y p d{move} r{char}
cut yank put delete replace with
P
Match
=====
Cursor word #
--> Pattern /<pattern> Next match n
<-- Pattern ?<pattern> Prev match N
Perform n times
===============
{num}actions example 5dw
Insert mode
***********
The mode that allows typing in file
Mode switch
===========
In Normal / Visual mode press c / i / a / o to switch to Insert mode
change before after on next line
c{move} i a o
C I A O
line before after on previous line
end line line
Perform n times
===============
{num}actions example 5cw
Visual mode
***********
Select text
Mode switch
===========
To switch to Visual mode from Normal mode
v{moves} V{moves} Ctrl + v{move}
,------ ,-----------. ,---.
Selections in Selections in Selections in
----. '------ '-----------' block mode
character mode line mode '---'
----'
Operations
==========
x y p
cut yank put
P
Command mode
************
Write commands and execute
Mode switch
===========
In normal (or) visual mode press : and type commands.
Then press Enter to execute and go back to normal mode
Open, save, edit
================
Edit Write Quit
--------------- --------------- ---------------
e w q
e! q!
e filename w filename
To discard changes add ! to command
Commonly used
-------------
Open by filename e filename
Save to file w
Save to file and quit wq
Save to file and quit ZZ (no going back)
Quit without saving q!
Tabs
====
Open tab tabnew Previous tab tabp
Move tab tabmove Next tab tabn
Match and replace
=================
%s/<pattern>/<replacement>/<flags>
Example: %s/Match/Scratch/gi
Flags
-----
global / all matches g
case insensitive i
Macros
******
start recording on 'a' qa
stop recording q
perform recording 'a' again @a
vimrc
*****
Vim can be configured with a .vimrc text file
One of the default locations commonly used is ~/.vimrc
Relative number
===============
-----------------------------
| 3 Another line |
| 2 Another line |
| 1 Another line |
|4 The line with the cursor |
| 1 Another line |
| 2 Another line |
-----------------------------
To make vim show number on current line and relative number on other
lines as above add to vimrc the line: