| Insert text at current position
| i
|
| Insert text at beginnging of line
| I
|
| Append text at current position
| a
|
| Append text at beginning of line
| A
|
| Open new line below cursor for new text
| o
|
| Open new line above cursor for new text
| O
|
| Delete line and substitute text
| S
|
| Overstrike existing characters with new text
| R
|
| Join current and next line
| J
|
| Toggle case
| ~
|
| Repeat last action
| .
|
| Undo last change
| u
|
| Restore line to original state
| U
|
| Movement
| Commands
|
| left, down, up, right
| h, j, k, l
|
| Forward by word
| w or W
|
| Backward by word
| b or B
|
| To end of line
| $
|
| To beginning of line
| 0 or ^
|
| Scroll forward one screen
| ^F
|
| Scroll backward one screen
| ^B
|
| Scroll forward half a screen
| ^D
|
| Scroll backward half a screen
| ^U
|
| Scroll forward one line
| ^E
|
| Scroll backward one line
| ^Y
|
| Move current line to the top of the screen and scroll
| z < RETURN>
|
| Move current line to the center of the screen and scroll
| z.
|
| Move current line to the bottom of the screen and scroll.
| z-
|
| Redraw the scren
| ^L
|
| Move to the top of the screen
| H
|
| Move to the middle of the screen
| M
|
| Move to the bottom of the screen
| L
|
| Move to the first character of the next line
| + or <RETURN>
|
| Move to the first non-blank character of current line.
| ^
|
| Move to column n of current line
| n|
|
| Move to the end of a word
| e
|
| Move to the end of a word, ignoring punctuation.
| E
|
| Move to the beginning of the current sentence
| (
|
| Move to the beginning of the next sentence.
| )
|
| Move to the beginning of the current paragraph
| {
|
| Move to the beginning of the next paragraph
| }
|
| Move to the beginning of the current section
| [[
|
| Move to the beginning of the next section
| ]]
|
| Search forward for a pattern
| /pattern
|
| Search backward for a pattern
| ?pattern
|
| Repeat last search
| n
|
| Repeat last search in opposite direction
| N
|
| Repeat last search forward
| /
|
| Repeat last search backward.
| n
|
| Move to next occurrence of x in current line.
| fx
|
| Move to previous occurrence of x in current line.
| Fx
|
| Move to just before next occurrence of x in current line.
| tx
|
| Move to just before previous occurrence of x in current line.
| Tx
|
| Repeat previous find command in same direction
| ;
|
| Repeat previous find command in opposite direction
| ,
|
| Go to n line
| nG
|
| Go to the end of the file
| G
|
| Show current line
| ^G
|
| Ex command:
| Description
|
| :3,18d
| Delete lines 3 - 18
|
| 160,224m23
| Move lines 160-224 to the line following 23.
|
| 23,29co100
| Copy lines 23-29 and place them after line 100.
|
| %d
| Delete all lines in the file
|
| :100;+5p
| Sets the current line to 100 then prints the next five lines. The semicolon is the important syntax. This gets around the error that states First address exceeds second.
|
| 340,$w >>new_file
| Appends lines 340 - EOF to new_file
|
| :$r in_file
| Reads in_file and places contents at the end of the current file.
|
| :0r in_file
| Reads in_file and places contents at the top of the current file.
|
| :e# or <ctrl>-^
| Switches to the previously edited file.
|
| "f4yy
| Yanks four lines into buffer f
|
| "fp
| Puts the contents of buffer f after the current line.
|
| :200,210ya j
| Yanks lines 200 - 210 into buffer j
|
| :$pu j
| Puts the contents of buffer j at the end of the file.
|
| :%s/old/new/g
| Global search of the file, replacing old w/new
|
| :g/pattern/s/old/new/g
| Searches the file for pattern; once found, changes old to new on matching lines only. A context-sensitive search/replace, if you will.
|
| :g/^$/d
| Deletes any blank lines in the file
|
| :%s/biteme/& harder/
| Searches globally for biteme and replaces it with biteme harder. The & is shorthand for the entire original search.
|
| Command
| Meaning
|
| :r !date
| Results in Mon Jan 6 14:12:20 CST 2003 being put in the line following the current.
|
| :r !sort phone
| Reads in the sorted file phone and places it below the current line.
|
| :%sort -r
| Reverse sorts the contents of the file
|
| :%!tr '[A-Z]' '[a-z]'
| Converts all capitalized letters to lowercase.
|
| :ab bm biteme harder
| Creates an abbreviation such that any time you type bm as a single word, vi will automatically replace it with biteme harder. Must be in insert mode for this to work.
|
| :unab bm
| Removes the abbreviation for bm
|
| :map ^R o</tr>^M<tr>^M^I<td>
| Maps -R to the keysequence that opens a line below the current and adds terminating row, new row, and table data html tags. The ^M and ^I key sequences must be added using <CTRL>-V <return> and <ctrl>-V <TAB> characters.
|
| :unmap ^R
| Removes the key mapping.
|