- General Startup
- Counts
- Cursor Movement
- Screen Movement
- Inserting
- Deleting
- Copying Code
- Put Command
- Find Commands
- Miscellaneous Commands
- Line Editor Mode
- ex Commands
- Substitutions
- Reading Files
- Write File
- Moving
- Shell Escape
- Find and Replace
- Dos2unix conversion
- Replace ^M with newline
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]
[top]
Counts
A number preceding any vi command tells vi to repeat that command that many times.
[top]
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
[top]
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)
[top]
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
[top]
Deleting
x - delete character under cursor
dd - delete line under cursor
dw - delete word under cursor
db - delete word before cursor
[top]
Copying Code
yy - (yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines.
[top]
Put Command
brings back previous deletion or yank of lines, words, or characters
P - bring back before cursor
p - bring back after cursor
[top]
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
[top]
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.
[top]
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]
[top]
ex Commands
For a complete list consult the UNIX Programmer's Manual
[top]
SUBSTITUTION
:#,#s/old/new/g
nbsp; # - line number range
old - pattern to replace
new - pattern to insert
g - optional key for global substitution (multiple occurences of old on the same line will not be replace without this)
[top]
READING FILES
copies (reads) filename after cursor in file currently editing
:r - filename
[top]
WRITE FILE
:w - saves the current file without quitting
[top]
MOVING
:# - move to line #
:$ - move to last line of file
[top]
SHELL ESCAPE
executes 'cmd' as a shell command.
:!'cmd'
[top]
Find and replace
:%s/find/replace/g
[top]
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
[top]
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
[top]
- Log in to post comments
- 24795 views