Commands for VI editor
The vi editor comes with every version of Linux or Unix.
To Get In and Out Of vi :-
To start –
vi filename (edit filename starting at line 1)
vi -r filename (recover filename that was being edited when system crashed)
To Exit vi –
<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 :-
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)
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)