Ctrl-X Mode
Ctrl-X (Insert Completion) Mode
Return to
Insert or Replace Mode
Enter from
Insert or Replace Mode
Ctrl-X
After leaving Completion Mode
Enter Special Character State Diagram
Special Character Pending
up to 4
hex digits
[0-9a-fA-F]{0,4}
up to 8
hex digits
[0-9a-fA-F]{0,8}
up to 4
hex digits
[0-9a-fA-F]{0,4}
up to 3
octal digits
[0-7]{0,3}
Special Character
Except: [0-9XoOxXuU]
U
u
X
x
O
o
up to 3
decimal digits
[0-9]{0,3}
Return to
Insert, Replace, or Virtual Replace Mode
or Normal Mode if coming from one of the Replace Character Pending Modes
Ctrl-V
Ctrl-Q
Enter from
Insert, Replace, Virtual Replace Mode
or one of the Replace Character Pending Modes
Ctrl-X Mode
Ctrl-X Mode
Special Character
Special Character
Special Character
Replace Character Pending Modes
Replace Character
Pending
Virtual Replace
Character Pending
Special Character
Visual Modes
Visual
Visual Line
Visual Block
Ctrl-V
V
v
Ctrl-V
v
V
Replace Modes
Replace
Virtual
Replace
Select Modes
Select Block
Select Line
Select
Insert Visual Modes
Insert Visual Line
Insert Visual Block
Insert Visual
Insert Select Modes
Insert Select Line
Insert Select Block
Insert Select
Operator Pending
Note(s)
Esc
Ctrl-[
i
I
o
O
a
A
Ctrl-C
gR
:vi
Ctrl-G
Ctrl-G
Ctrl-O
:!
/
:
?
Ctrl-V
V
v
Insert
Insert
:start
:
Ctrl-O
Q
R
c
C
Normal Mode
Command
Insert
Normal
Command-Line
(Cmdline)
Ex
Insert
Normal (Command)
Normal (Command)
Esc
Esc
Esc
!
gI
Esc
s
S
Visual Mode
Command
Select Visual
g Ctrl-H
gH
gh
Printable Character, NL, or CR
Esc
Esc
Esc
Ctrl-V
V
v
g Ctrl-H
gH
gh
Ctrl-G
Ctrl-G
Esc
Esc
Visual Mode
Command
Select Mode
Command
operator
CR
I
A
VIM Modes Transition Diagram
By darcyparker@gmail.com Draft (3/19/2012. But not released as a new draft) Feedback welcome
:startreplace
It's called 'Operator Pending',
but it seems a better name would
be 'Motion Pending'.
r
:startgreplace
motion or
text object
c
Printable
Character,
NL or CR
C
cc
operator
Esc
motion or
text object
Ctrl-C
r
Esc
Ctrl-X
Ctrl-X
v
V
Ctrl-V
gv
gv
Ctrl-C
Ctrl-C
s
S
R
J
gJ
u
U
g?
Ctrl-V
Ctrl-Q
Ctrl-V
Ctrl-Q
gi
Ctrl-C
gr
gr
Note: Esc does not cancel in this mode. Esc enters ^[ character!
In fact any special character, such as <Tab>, can be entered directly.
Ctrl-C
Ctrl-C
Stops visual mode
Ctrl-C
Esc
undocumented
Ctrl-C
Ctrl-O
Visual Replace Character Pending
Visual Virtual Replace Character Pending
Printable and
some Special
Characters
Esc
Ctrl-C
Printable
Character,
NL or CR
Ctrl-V
Ctrl-Q
Ctrl-Q
Ctrl-V
Note: s is equivalent to c from visual mode
Note: R is equivalent to S in visual mode (Vim help says R may change after Vim 7.3?)
Also note, S is overridden by the surround.vim plugin from visual mode.
Equivalent