vi Commands

vi commands are used in “screen” mode (the default), where you use the commands to move around the screen and to perform operations on the text.

Most vi commands follow a general pattern:

[command][number]textobject

or the equivalent form:

[number][command]textobject

Movement Commands

vi movement commands distinguish between two kinds of “words.” The lowercase commands define a word as a contiguous sequence of underscores, letters, and digits. The uppercase commands define a word as a contiguous sequence of nonwhitespace characters.

CommandMeaning
Character 
h, j, k, l

Left, down, up, right (←, ↓, ↑, →)

Text 
w, W, b, B

Forward, backward by word

e, E

End of word

), (

Beginning of next, previous sentence

}, {

Beginning of next, previous paragraph

]], [[

Beginning of next, previous section

Lines 
ENTER

First nonblank character of next line

0, $

First, last position of current line

^

First nonblank character of current line

+, -

First nonblank character of next, previous line

n |

Column n of current line

H, M, L

Top, middle, last line of screen

n H

n (number) of lines after top line

n L

n (number) of lines before last line

Scrolling 
CTRL-F, CTRL-B

Scroll forward, backward one screen

CTRL-D, CTRL-U

Scroll down, up one half-screen

CTRL-E, CTRL-Y

Show one more line at bottom, top of window

z ENTER

Reposition line with cursor: to top of screen

z.

Reposition line with cursor: to middle of screen

z–

Reposition line with cursor: to bottom of screen

CTRL-L

Redraw screen (without scrolling)

CommandMeaning
Searches ...

Get vi and Vim Editors Pocket Reference, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.