General Startup
| To use vi: |
vi filename |
| To exit & save changes: |
ZZ or :wq |
| To exit without saving changes: |
:q! |
| To save the current file without quitting: |
:w |
| To copy (read) filename after cursor in file currently editing: |
:r filename |
| To enter vi command mode: |
[esc] |
Line Editor Mode
Any commands form the line editor can be issued upon entering line mode.
| To enter: |
type ':' |
| To exit: |
press [return] or [esc] |
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 ) |
Shell Escape
executes 'cmd' as a shell command:
:!cmd
Copying Code
| yy |
(yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines. |
|
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 |
:%s/regex/repl/flags replace
Moving
| :# |
move to line # |
| :$ |
move to last line of file |
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.
Put Command
brings back previous deletion or yank of lines, words, or characters
| P | bring back before cursor |
| p | bring back after cursor |
|
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 |
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 |
Deleting
| x | delete character under cursor |
| dd | delete line under cursor |
| dw | delete word under cursor |
| db | delete word before cursor |
Counts
A number preceding any vi command tells vi to repeat that command many times.
|