|
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 |
|
|
|
|