Linux: vi Editor
To Get Into and Out Of vi
To Start vi
- To use vi on a file, type in vi filename. If the file named filename exists, then the first page (or screen) of the file will be displayed; if the file does not exist, then an empty file and screen are created into which you may enter text.
| * | vi filename | edit filename starting at line 1 |
|---|---|---|
| vi -r filename | recover filename that was being edited when system crashed |
To Exit vi
- Usually the new or modified file is saved when you leave vi. However, it is also possible to quit vi without saving the file.
- Note: The cursor moves to bottom of screen whenever a colon (:) is typed. This type of command is completed by hitting the <Return> (or <Enter>) key.
| * | 😡<Return> | quit vi, writing out modified file to file named in original invocation |
|---|---|---|
| :wq<Return> | quit vi, writing out modified file to file named in original invocation | |
| :q<Return> | quit (or exit) vi | |
| * | :q!<Return> | quit vi even though latest changes have not been saved for this vi call |
Deleting Text
- The following commands allow you to delete text.
| * | x | delete single character under cursor |
|---|---|---|
| Nx | delete N characters, starting with character under cursor | |
| dw | delete the single word beginning with character under cursor | |
| dNw | delete N words beginning with character under cursor; e.g., d5w deletes 5 words |
|
| D | delete the remainder of the line, starting with current cursor position | |
| * | dd | delete entire current line |
| Ndd or dNd | delete N lines, beginning with the current line; e.g., 5dd deletes 5 lines |
Cutting and Pasting Text
- The following commands allow you to copy and paste text.
| yy | copy (yank, cut) the current line into the buffer | |
|---|---|---|
| Nyy or yNy | copy (yank, cut) the next N lines, including the current line, into the buffer | |
| p | put (paste) the line(s) in the buffer into the text after the current line |