vi Commands List
A listing of vi commands currently implemented in Code Editor.
Keystrokes | Description |
---|---|
h l k j |
character left, right; line up, down |
b w |
word/token left, right |
ge e |
end of word/token left, right |
0 ^ $ |
beginning, first, last character of line |
nG/:n ngg |
line n, default the last, first |
B W |
space-separated word left, right |
gE E |
end of space-separated word left, right |
H M L |
Top, middle, bottom of screen |
g0 gm |
beginning, middle of screen line |
g^ g$ |
first, last character of screen line |
fc Fc |
next, previous occurrence of character c |
tc Tc |
before next, previous occurrence of c |
Keystrokes | Description |
---|---|
i a |
insert before, after cursor |
I A |
insert at beginning of first character, end of line |
gI (g + Capital I ) |
insert text in first column/go to first column |
o O |
open a new line below, above the current line |
rc |
replace character under cursor with c |
R |
replace characters starting at the cursor |
cm |
change text of movement command m |
cc or S |
change current line |
C |
change to the end of line |
Keystrokes | Description |
---|---|
x X |
delete character under (right), before (left) cursor |
dm |
delete text of movement command m |
dd D |
delete current line, to the end of line |
J gJ |
join current line with next, without space |
:rd |
delete range r lines |
Keystrokes | Description |
---|---|
/s← ?s← |
search forward, backward for s |
n or /← |
repeat forward last search |
N or ?← |
repeat backward last search |
# * |
search backward, forward for complete word under cursor |
g# g* |
same, but also find partial matches |
gd gD |
local, global definition of symbol under cursor |
:rs/f /t/x |
substitute f by t in
range r ; x: g -- all occurrences, c --
confirm changes |
Keystrokes | Description |
---|---|
ym |
yank the text of movement command m |
yy/:y or Y |
yank current line into register |
:ry |
yank r range of lines |
p P |
put register after, before cursor position |
Keystrokes | Description |
---|---|
u U |
undo last command, restore last changed line |
. |
repeat last changes |
.n |
repeat last changes with count replaced by n |
Keystrokes | Description |
---|---|
~ |
switch case and advance cursor |
g~m gum gUm |
switch case, lc, uc on movement m |
Keystrokes | Description |
---|---|
esc or ^] |
abandon editing → command mode |
Keystrokes | Description |
---|---|
mc |
mark current position with mark c ∈ [a
Z] |
'c 'C |
go to mark c in current, C in
any file |
Keystrokes | Description |
---|---|
:e f |
edit file f, reload current file if no f |
:rw f |
write range r to file f (current
file if no f ) (:w , :w f ) |
:q :q! |
quit and confirm, quit and discard changes |
:wq or :x or ZZ |
write to current file and exit |
:r f |
insert content of file f below cursor |
:n |
next file |
:p |
previous file |
:n,kw >> file1 |
append lines n -k into
another file file1. |
Keystrokes | Description |
---|---|
, ; |
separates two line numbers, set to first line |
:n,m |
lines n to m |
n |
an absolute line number n |
. $ |
the current line, the last line in file |
% * |
entire file, visual area (exclude) |
't |
position of mark t |
/p/ ?p? |
the next, previous line where p matches |
+n -n |
+n , −n to the
preceding line number |
Keystrokes | Description |
---|---|
zo zc zO zC |
open, close one fold; recursively |
[z ]z |
move to start, end of current open fold |
zj zk |
move down/up to start/end of next/previous fold |
zm zM |
fold more, close all folds |
zr zR |
fold less, open all folds |