General Startup
To use vi: vi filename
To exit vi and save changes: ZZ or :wq
To exit vi without saving changes: :q!
To enter vi command mode: [esc]
To use vi: vi filename
To exit vi and save changes: ZZ or :wq
To exit vi without saving changes: :q!
To enter vi command mode: [esc]
Counts
A number preceding any vi command tells vi to repeat that command that many times.
A number preceding any vi command tells vi to repeat that command that many times.
Cursor Movement
h - move left (backspace)
j - move down
k - move up
l - move right (spacebar)
[return] - move to the beginning of the next line
$ - last column on the current line
0 - move cursor to the first column on the current line
^ - move cursor to first nonblank column on the current line
w - move to the beginning of the next word or punctuation mark
W - move past the next space
b - move to the beginning of the previous word or punctuation mark
B - move to the beginning of the previous word, ignores punctuation
e - end of next word or punctuation mark
E - end of next word, ignoring punctuation
H - move cursor to the top of the screen
M - move cursor to the middle of the screen
L - move cursor to the bottom of the screen
h - move left (backspace)
j - move down
k - move up
l - move right (spacebar)
[return] - move to the beginning of the next line
$ - last column on the current line
0 - move cursor to the first column on the current line
^ - move cursor to first nonblank column on the current line
w - move to the beginning of the next word or punctuation mark
W - move past the next space
b - move to the beginning of the previous word or punctuation mark
B - move to the beginning of the previous word, ignores punctuation
e - end of next word or punctuation mark
E - end of next word, ignoring punctuation
H - move cursor to the top of the screen
M - move cursor to the middle of the screen
L - move cursor to the bottom of the screen
Screen Movement
G - move to the last line in the file
xG - move to line x
z+ - move current line to top of screen
z - move current line to the middle of screen
z- - move current line to the bottom of screen
^F - move forward one screen
^B - move backward one line
^D - move forward one half screen
^U - move backward one half screen
^R - redraw screen (does not work with VT100 type terminals)
^L - redraw screen (does not work with Televideo terminals)
G - move to the last line in the file
xG - move to line x
z+ - move current line to top of screen
z - move current line to the middle of screen
z- - move current line to the bottom of screen
^F - move forward one screen
^B - move backward one line
^D - move forward one half screen
^U - move backward one half screen
^R - redraw screen (does not work with VT100 type terminals)
^L - redraw screen (does not work with Televideo terminals)
Inserting
r - replace character under cursor with next character typed
R - keep replacing character until [esc] is hit
i - insert before cursor
a - append after cursor
A - append at end of line
O - open line above cursor and enter append mode
r - replace character under cursor with next character typed
R - keep replacing character until [esc] is hit
i - insert before cursor
a - append after cursor
A - append at end of line
O - open line above cursor and enter append mode
Deleting
x - delete character under cursor
dd - delete line under cursor
dw - delete word under cursor
db - delete word before cursor
x - delete character under cursor
dd - delete line under cursor
dw - delete word under cursor
db - delete word before cursor
Copying Code
yy - (yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines.
yy - (yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines.
Put Command
brings back previous deletion or yank of lines, words, or characters
P - bring back before cursor
p - bring back after cursor
brings back previous deletion or yank of lines, words, or characters
P - bring back before cursor
p - bring back after cursor
Find Commands
? - finds a word going backwards
/ - finds a word going forwards
f - finds a character on the line under the cursor going forward
F - finds a character on the line under the cursor going backwards
t - find a character on the current line going forward and stop one character before it
T - find a character on the current line going backward and stop one character before it
; - repeat last f, F, t, T
? - finds a word going backwards
/ - finds a word going forwards
f - finds a character on the line under the cursor going forward
F - finds a character on the line under the cursor going backwards
t - find a character on the current line going forward and stop one character before it
T - find a character on the current line going backward and stop one character before it
; - repeat last f, F, t, T
Miscellaneous Commands
. - repeat last command
u - undoes last command issued
U - undoes all commands on one line
xp - deletes first character and inserts after second (swap)
J - join current line with the next line
^G - display current line number
% - if at one parenthesis, will jump to its mate
mx - mark current line with character x
'x - find line marked with character x
NOTE: Marks are internal and not written to the file.
. - repeat last command
u - undoes last command issued
U - undoes all commands on one line
xp - deletes first character and inserts after second (swap)
J - join current line with the next line
^G - display current line number
% - if at one parenthesis, will jump to its mate
mx - mark current line with character x
'x - find line marked with character x
NOTE: Marks are internal and not written to the file.
Line Editor Mode
Any commands form the line editor ex can be issued upon entering line mode.
To enter: type ':'
To exit: press[return] or [esc]
Any commands form the line editor ex can be issued upon entering line mode.
To enter: type ':'
To exit: press[return] or [esc]
ex Commands
For a complete list consult the UNIX Programmer's Manual
For a complete list consult the UNIX Programmer's Manual
[top]
READING FILES
copies (reads) filename after cursor in file currently editing
:r - filename
copies (reads) filename after cursor in file currently editing
:r - filename
WRITE FILE
:w - saves the current file without quitting
:w - saves the current file without quitting
MOVING
:# - move to line #
:$ - move to last line of file
:# - move to line #
:$ - move to last line of file
SHELL ESCAPE
executes 'cmd' as a shell command.
:!'cmd'
executes 'cmd' as a shell command.
:!'cmd'
Find and replace
:%s/find/replace/g
:%s/find/replace/g
Dos2unix conversion (Remove ^M at the end of every line)
:%s/<Ctrl-V><ENTER>//g
PS: <Ctrl-V> means you have to press V while holding CTRL and <ENTER> means Enter key from your keyboard
:%s/<Ctrl-V><ENTER>//g
PS: <Ctrl-V> means you have to press V while holding CTRL and <ENTER> means Enter key from your keyboard
Replace ^M with newline
:%s/<Ctrl-V><ENTER>/\r/g
PS: <Ctrl-V> means you have to press V while holding CTRL and <ENTER> means Enter key from your keyboard
:%s/<Ctrl-V><ENTER>/\r/g
PS: <Ctrl-V> means you have to press V while holding CTRL and <ENTER> means Enter key from your keyboard