I'm using vim instead of vi.
Helpful addon scripts to vim
These script files should reside in ~/.vim/plugin:
[john@bender ~]$ mkdir -p .vim/{plugin,doc}
[john@bender ~]$ ls .vim/
doc plugin
This script allows you to manage rcs files automatically:
rcs.vim script will prompt you to checkout and lock the filercs.vim script will prompt you to checkin and unlock the file, and type a comment for your changes
Indent Multiple lines: 1)
The << and >> commands are used to for block indenting. The >> indents a line right one tab and << indents a line left one tab. You can indent a whole bunch of lines by giving a number the number before the >> or <<. For example, 10>> will indent ten lines from the current cursor position.
| switch to insert/edit mode | ||
|---|---|---|
| command | description | verified command? |
| i | insert text at cursor | yes |
| o | insert new line below cursor | yes |
| a | insert text after cursor | yes |
| I | Insert text at the beginning of the line | yes |
| O | Open line above cursor | yes |
| A | Append text at the end of the line | yes |
| switch to command mode | ||
| <ESC> | switch to command mode (stop editing) | yes |
| cursor movement (command mode) | ||
| <CTRL> + b | page up 1 screen | yes |
| <CTRL> + u | page up 1/2 screen | yes |
| <CTRL> + d | page down 1/2 screen | yes |
| <CTRL> + f | page down 1 screen | yes |
| G | go to last line | yes |
| :n or nG | go to line n | yes |
| 0 (zero) | go to beginning of line | yes |
| $ | go to end of line | yes |
| ( ) | scroll by sentence (f/b) | yes |
| w b | scroll by word (f/b) | yes |
| h j k l | move left, down, up, right | yes |
| nx | move xn characters/lines where x is (h, j, k, or l) | yes |
| Arrow Keys | directional movement | yes |
| :set number | show line numbers | yes |
| :set nonumber | hide line numbers | yes |
| Deleting text (command mode) | ||
| cw | change word at cursor | yes |
| dw | delete word at cursor | yes |
| r | replace one character | yes |
| x | delete text at cursor | yes |
| D | delete current to end of line | yes |
| dd | delete entire line | yes |
| ndd | delete n lines | yes |
| :m,nd | delete lines m-n | yes |
| Editing (command mode) | ||
| yy | copy line | no |
| nyy | copy n lines | no |
| :m,nt o | copy lines m-n, paste after o | no |
| P | paste above current line | no |
| p | paste below current line | no |
| :m,nm o | cut lines m-n, paste after o | no |
| J | join previous line | no |
| ?string | search backward for string | yes |
| /string | search forward for string | yes |
| :set paste | enable paste mode, which pastes without auto-formatting | yes |
| :set nopaste | disable paste mode (re-enable auto-format) | yes |
| View Modes new for vim version 7.0 4) | ||
| :tabnew filename | open filename in a new “tab” | no |