Find knowledge base article(s) by searching for keywords in the title e.g. type linux in the search box below
Find knowledge base article(s) by browsing the subject categories of articles
Technology quick references, cheatsheets, user manuals etc.
Shop Online through ShopifyLite
Tutorials on various IT applications.
Search Title    (UL:0 |SS:f)

Software >> OS >> Unix >> Utilities >> vi >> What are the vi commands (vi cheatsheet)

To Start vi

vi filename

edit filename starting at line 1

vi -r filename

recover filename that was being edited when system crashed

To Exit vi

:x<Return>

quit vi, writing out modified file to file named in original invocation

:wq<Return>

quit vi, writing out modified file to file named in original invocation

:q<Return>

quit (or exit) vi

:q!<Return>

quit vi even though latest changes have not been saved for this vi call

 

Moving the Cursor

j

or <Return>
or <down-arrow>

move cursor down one line

k

or <up-arrow>

move cursor up one line

h

or <Backspace>
or <left-arrow>

move cursor left one character

l or <Space>
  [or right-arrow]

move cursor right one character

0 (zero)

move cursor to start of current line (the one with the cursor)

$

move cursor to end of current line

w

move cursor to beginning of next word

b

move cursor back to beginning of preceding word

:0<Return>
or 1G

move cursor to first line in file

:n<Return>
or nG

move cursor to line n

:$<Return>
or G

move cursor to last line in file

Screen Manipulation

 

 

^f

move forward one screen

 

^b

move backward one screen

 

^d

move down (forward) one half screen

 

^u

move up (back) one half screen

 

^l

redraws the screen

 

^r

redraws the screen, removing deleted lines

     

 

Adding, Changing, and Deleting Text

 

*

u

UNDO WHATEVER YOU JUST DID; a simple toggle

Inserting or Adding Text

 

i

insert text before cursor, until <Esc> hit

I

insert text at beginning of current line, until <Esc> hit

a

append text after cursor, until <Esc> hit

A

append text to end of current line, until <Esc> hit

o

open and put text in a new line below current line, until <Esc> hit

O

open and put text in a new line above current line, until <Esc> hit

Changing Text

 

r

replace single character under cursor (no <Esc> needed)

R

replace characters, starting with current cursor position, until <Esc> hit

cw

change the current word with new text,
starting with the character under cursor, until
<Esc> hit

cNw

change N words beginning with character under cursor, until <Esc> hit;
  e.g.,
c5w changes 5 words

C

change (replace) the characters in the current line, until <Esc> hit

cc

change (replace) the entire current line, stopping when <Esc> is hit

Ncc or cNc

change (replace) the next N lines, starting with the current line,
stopping when
<Esc> is hit

Deleting Text

 

x

delete single character under cursor

Nx

delete N characters, starting with character under cursor

dw

delete the single word beginning with character under cursor

dNw

delete N words beginning with character under cursor;
  e.g.,
d5w deletes 5 words

D

delete the remainder of the line, starting with current cursor position

dd

delete entire current line

Ndd or dNd

delete N lines, beginning with the current line;
  e.g.,
5dd deletes 5 lines

Cutting and Pasting Text

 

yy

copy (yank, cut) the current line into the buffer

Nyy or yNy

copy (yank, cut) the next N lines, including the current line, into the buffer

p

put (paste) the line(s) in the buffer into the text after the current line

Searching Text

 

/string

search forward for occurrence of string in text

?string

search backward for occurrence of string in text

n

move to next occurrence of search string

N

move to next occurrence of search string in opposite direction

Determining Line Numbers

 

:.=

returns line number of current line at bottom of screen

:=

returns the total number of lines at bottom of screen

^g

provides the current line number, along with the total number of lines,
in the file at the bottom of the screen

 

Saving and Reading Files

 

:r filename<Return>

read file named filename and insert after current line
(the line with cursor)

:w<Return>

write current contents to file named in original vi call

:w newfile<Return>

write current contents to a new file named newfile

:12,35w smallfile<Return>

write the contents of the lines numbered 12 through 35 to a new file named smallfile

:w! prevfile<Return>

write current contents over a pre-existing file named prevfile

 

 

Controlling editor display

 

:set number

Turns on displaying of line numbers
:set nonumber Turns off displaying of line numbers
:syntax off Turns on color for syntax highlighting of supported  prog language
:syntax off Turns off color for syntax highlighting
   

 

 

 

 

 

[ © 2008-2021 myfaqbase.com - A property of WPDC Consulting ]