vi editor commands
- [ins] edit text
- [esc] return back from editing
- :w save
- :wq save and exit
- ? search
- :q! exit without saving
- a number preceding any vi command tells vi to repeat that command that many times.
cursor movement
- h move left (backspace)
- j move down
- k move up
- l move right (spacebar)
- [ret] 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
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
- ^L redraw 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
copying code
- yy (yank)'copies' line which may then be put by the p(put) command. Precede with a count for multiple lines.
put (brings back previous deletion or yank of lines, words, or characters)
- P bring back before cursor
- p bring back after cursor
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
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
line editor mode
- any commands form the line editor ex can be issued upon entering line mode.
- to enter: type ':'
- to exit: press[return] or [esc]
moving
- :# move to line #
- :$ move to last line of file
shell
- :!'cmd' executes 'cmd' as a shell command.