Linux Foundation
Commands Used to Start, Exit, Read, and Write Files in vi
| Command |
Usage |
| vi myfile |
Start the vi editor and edit the m yfile file |
| vi -r myfile |
Start vi and edit m yfile in recovery mode from a system crash |
| :r file2<ret> |
Read in file2 and insert at current position |
| :w<ret> |
Write to the file |
| :w myfile<ret> |
Write out the file to m yfile |
| :w! file2<ret> |
Overwrite file2 |
| :x<ret> or :wq<ret> |
Exit vi and write out modified file |
| :q<ret> |
Quit vi |
| :q!<ret> |
Quit vi even though modifications have not been saved |
Keystrokes Used When Changing Cursor Position in vi
| Keys |
Usage |
| arrow keys |
To move up, down, left and right |
| j or <ret> |
To move one line down |
| k |
To move one line up |
| h or Backspace |
To move one character left |
| l or Space |
To move one character right |
| 0 |
To move to beginning of line |
| $ |
To move to end of line |
| w |
To move to beginning of next word |
| h |
To move to top of file |
| b |
To move back to beginning of preceding word |
| :0 <ret> or (G |
To move to beginning of file |
| :n <ret> or nG |
To move to line n |
| :$ <ret> or G |
To move to last line in file |
| CTRL-F or Page Down |
To move forward one page |
| CTRL-B or Page Up |
To move backward one page |
| Al |
To refresh and center screen |
Searching for Text in vi
| Command |
Usage |
| /pattern<ret> |
Search forward for pattern |
| string<ret> |
Search backward for pattern |
| |
Key |
Usage |
| n |
|
Move to next occurrence of search pattern |
| N |
|
Move to previous occurrence of search pattern |
Working with Text in vi
| Key |
Usage |
| a |
Append text after cursor; stop upon Escape key |
| A |
Append text at end of current line; stop upon Escape key |
| i |
Insert text before cursor; stop upon Escape key |
| I |
Insert text at beginning of current line; stop upon Escape key |
| o |
Start a new line below current line, insert text there; stop upon Escape key |
| 0 |
Start a new line above current line, insert text there; stop upon Escape key |
| r |
Replace character at current position |
| R |
Replace text starting with current position; stop upon Escape key |
| x |
Delete character at current position |
| Nx |
Delete N characters, starting at current position |
| dw |
Delete the word at the current position |
| D |
Delete the rest of the current line |
| dd |
Delete the current line |
| Ndd or dNd |
Delete N lines |
| u |
Undo the previous operation |
| yy |
Yank (cut) the current line and put it in buffer |
| Nyy or yNy |
Yank (cut) N lines and put it in buffer |
| P |
Paste at the current position the yanked line or lines from the buffer |